comment créer une librairie c++ et l'utiliser en c/c++
j'aimerais savoir comment créer une librairie (libtest.a) en c++ l'utiliser en c++ et en c sous linux
mon problème est l'utilisation de la lib
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
je compile comme ceci et ca ne marche pas
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
Code:
1 2 3 4
| #ifndef MYLIBTEST.H
#def MYLIBTEST.H
void helloworld();
#endif |
je crée mylibtest.cpp suivant
Code:
1 2 3 4 5
| #include"mylibtest.h"
#include<iostream>
void helloworld() {
std::cout<<"hello world\n";
} |
je le compile avec
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
Code:
1 2 3 4 5
| #include"mylibtest.h"
int main()
{ helloworld();
return 0;
} |
lorsque je le compile avec
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