Xcodes, libs

steiner

Membre actif
6 Janvier 2007
923
54
36
Liège
users.skynet.be
Bonjour,

Je n'utilise pas XCode depuis longtemps, donc excusez-moi si ma question semble stupide.

J'ai téléchargé un fichier source C++, qui est un exemple de programme utilisant l'API NET-SNMP. J'ai également téléchargé le Makefile qui va avec.
Lorsque je tape make en console, tout va bien.
J'ai donc essayé de créer un projet XCode pour compiler ce fichier source. Ca n'a pas marché, il ne trouvait pas les librairies j'imagine.
J'ai donc créé un projet XCode utilisant un "compilateur externe" (external build), donc en gros le projet XCode utilise le Makefile. Là ça marche également sans soucis.

Maintenant j'aimerais savoir comment configurer XCode pour ajouter aux options de compilation celles qui se trouvent dans le Makefile afin que je puisse compiler ce fichier SANS utiliser le Makefile (j'ai mis à la fin de ce post le Makefile).

J'ai également une autre question : est-il possible d'avoir l'auto-complétion pour l'API Net-SNMP ?

Merci d'avance pour votre aide :)

------------------------------------

CC=g++

OBJS1=snmpdemoapp.o
OBJS2=example-demon.o nstAgentSubagentObject.o
OBJS3=asyncapp.o
TARGETS=example-demon snmpdemoapp asyncapp

CFLAGS=-I. `net-snmp-config --cflags`
BUILDLIBS=`net-snmp-config --libs`
BUILDAGENTLIBS=`net-snmp-config --agent-libs`

# shared library flags (assumes gcc)
DLFLAGS=-fPIC -shared

all: $(TARGETS)

snmpdemoapp: $(OBJS1)
$(CC) -o snmpdemoapp $(OBJS1) $(BUILDLIBS)

asyncapp: $(OBJS3)
$(CC) -o asyncapp $(OBJS3) $(BUILDLIBS)

example-demon: $(OBJS2)
$(CC) -o example-demon $(OBJS2) $(BUILDAGENTLIBS)

clean:
rm $(OBJS2) $(OBJS2) $(TARGETS)

nstAgentPluginObject.so: nstAgentPluginObject.c Makefile
$(CC) $(CFLAGS) $(DLFLAGS) -c -o nstAgentPluginObject.o nstAgentPluginObject.c
$(CC) $(CFLAGS) $(DLFLAGS) -o nstAgentPluginObject.so nstAgentPluginObject.o
 
Clic droit sur ta target, "Get Info", onglet "Build"

Mais pour ajouter une librairie à ton projet il suffit de déposer ton fichier dans Xcode. La cible sera mise à jour en fonction du fichier déposer.
Autre solution clic droit sur ton projet et sélectionner Add/Existing files ou Existing frameworks
 
Merci de ton aide :)
Mais ça ne résouds pas encore complètement mon problème.

En fait la ligne du makefile qui m'intéresse est :
BUILDLIBS=`net-snmp-config --libs`
En fait cette commande permet d'obtenir le nom des librairies nécessaires pour compiler :
Bloc de code:
user:~ user$ net-snmp-config --libs
-lnetsnmp
Fort de cette constatation, j'ai simplement été dans les propriété de la target, et j'ai ajouté
" -lnetsnmp " dans les "other linker flags" et là miracle ça fonctionne :)
Cependant si je mets : `net-snmp-config --libs` dans les other linker flags, ça ne marche pas :'(
XCode ne prend pas en compte les `` et pense que l'option est net-snmp-config --libs alors que le flag c'est en réalité le retour de cette commande ...
Bref quelqu'un a-t-il une idée pour que XCode reconnaisse les ``?