j'aimerais savoir comment cr�er une librairie (libtest.a) en c++ l'utiliser en c++ et en c sous linux
j'aimerais savoir comment cr�er une librairie (libtest.a) en c++ l'utiliser en c++ et en c sous linux
Quel est le probl�me ? Produire le .a ? Ou bien linker du code C avec une biblio C++ ?
(Seul b�mol des libs C++, le compilo qui compile/linke le programme final doit �tre le m�me que celui qui a produit la lib. C'est particuli�rement vrai sous Windows (o� il y a beaucoup de compilos diff�rents), mais aussi parfois d'une version d'un compilo � la suivante.)
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...
En fait mon pb c'est effectivement que je n'arrive pas � lier le (libtest.a) � l'ade de ranlib; lorsque je tape "ranlib libtest.a" linux ne produit pas d'erreur mais lorsque je veut utiliser la librairie, linux me signale que la librairie "test" n'a pas d'index et qe je dois utiliser ranlib pour le cr�er: je tourne en rond
C'est quoi ta ligne de commande pour l'�dition des liens ?
En fait voici toute ma d�marche:
je suis dans le r�pertoire /home/
je cr�e le rep mylib et je me positionne dedans: cd mylib
je cr�� mylibtest.h suivant
je cr�e mylibtest.cpp suivant
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 #ifndef MYLIBTEST.H #def MYLIBTEST.H void helloworld(); #endif
je le compile avec
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 #include"mylibtest.h" #include<iostream> void helloworld() { std::cout<<"hello world\n"; }
g++ -c mylibtest.cpp
je cr�e le fichier librairie avec
ar cr libtest.a mylibtest.o
je lie les objets � l'int�rieur avec
ranlib libtest.a
puis je cr�e le fichier exec.cpp qui utilisera cette lib
lorsque je le compile avec
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 #include"mylibtest.h" int main() { helloworld(); return 0; }
g++ exec.cpp -L. -ltest exec_cpp
j'obtient le message selon lequel la librairie test n'a pas d'index et que je dois utiliser la commande ranlib pour en cr�er 1.
je le fais et j'ai toujours le m�me message
je tourne en rond
Partager