Linkage Makefile et optimisation
Donc j'utilise pour mes fichier une bibliothèque de fonction qui s'appelle assez betement fonctions_insertions.h et fonctions_insertions.cpp et egalement j'ai besoin de la librairie mysqlpp pour l'interface avec le SGBD mysql. Le probleme c'est que de facto ma librairie mysqlpp est necessaire partout car j'ai besoin de fonctions_insertions.cpp/.h partout.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| all: insertion_madness
insertion_madness: gsm.o fonctions_insertion.o insertion_madness.o couple.o
g++ -O3 gsm.o couple.o fonctions_insertion.o insertion_madness.o -o insertion_madness -I/usr/include/mysql -lmysqlpp
gsm.o: gsm.cpp gsm.h couple.h fonctions_insertion.h
g++ -O3 gsm.cpp -c gsm.h couple.h fonctions_insertion.h -I/usr/include/mysql -lmysqlpp
fonctions_insertion.o : fonctions_insertion.cpp fonctions_insertion.h
g++ -O3 fonctions_insertion.cpp -c fonctions_insertion.h -I/usr/include/mysql -lmysqlpp
insertion_madness.o: insertion_madness.cpp gsm.h fonctions_insertion.h
g++ -O3 insertion_madness.cpp -c gsm.h fonctions_insertion.h couple.h -I/usr/include/mysql -lmysqlpp
couple.o : couple.cpp couple.h
g++ -O3 couple.cpp -c couple.h
clean:
rm -rf *.o *.gch
mrproper: clean
rm -rf separateurs |
Or je sais que je n'ai aps tout compris a la liaison avec les bibliothèque. Déjà que le processus d'installation etait vraiment pas clair la j'ai systematiquement ce message d'erreur :
Code:
1 2 3 4
| $ make
g++ -O3 insertion_madness.cpp -c gsm.h fonctions_insertion.h couple.h -I/usr/include/mysql -lmysqlpp
g++: -lmysqlpp: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
g++ -O3 gsm.o couple.o fonctions_insertion.o insertion_madness.o -o insertion_madness -I/usr/include/mysql -lmysqlpp |
Bon ca n'empêche pas mon code de parfaitement bien marché mais si j'enleve la liaison ca ne marche plus. Donc entre un code qui marche mais qui hurle et un code qui marche pas du tout j'ai choisis d'avancer. Bref qu'est-ce que je ne fais pas bien.
Autre question. Si je veux que mon code soit portable sur un autre serveur avec le même os mais sans la librairie d'installer je fais comment pour intégrer la librairie a la compilation ? Cela ne risque pas de nuire a la performance avec un exécutable bcp trop gros ? Car je suis actuellement sur un server de test coupé du net mais a terme mon programme migrera sur un serveur tournant avec le meme OS.Et ne pas avoir a reinstaller la librairie est tout de meme plus simple non ?
D'avance merci !