-
shared library heritage
Bonjour a tous ... je travaille sous linux et j'aimerai utiliser des objets d'une librairy c++ dans mon appli. Mais j'aimerai faire de l'heritage pour pouvoir changer quelques fonctionalites.
Pour tester j'ai donc cree une classe toute bete et compile de la sorte:
gcc -fPIC -shared -o libEssai.so essai.cpp
ensuite pour l'utiliser j'ai creer une classe qui herite de cette classe contenu ds la shared library et compiler de la sorte:
gcc -L/home/aved/lib -lessai Try.cpp Main.cpp -o main
et a la compilation il arrive pas linker avec ma library !! j'ai exporter la variable LD_LIBRARY_PATH ... mais de tout facon ca marche pas a la compilation :'( j'avoue etre un peu pommer quant il faut compiler !!
merci de votre aide
-
peux-tu nous copier coller les messages d'erreur?
-
Salut,
Tu fais -lessai alors que visiblement le fichier s'appelle libEssai.so, c'est normal ?
En général on met plutôt libessai.so je dirais...
MAT.
-
Merci pour vos reponses ... il s'avere que en rajoutant la localisation des headers ca passe: gcc -L/home/aved/lib -lessai -I/home/aved/src/ Try.cpp Main.cpp -o main
pour ce qui est du libEssai.so ... normalement lorsqu'on inclu une librairie nomee libEssai.so ... faut inclure -lessai enfin je croix ... mais la librairie est bien trouvee ...
mais ce que je comprends pas c pkoi je suis obliger d'inclure les header !! pour moi je devrais seulement a avoir a inclure les .so non ??
-
Bon pour les headers ... ca a l'air d'etre comme ca :) ... j'ai vraiement des soucies avec la compilations C++ ....
Autre question ... les libraries que je veux inclure sont dans plein de repertoires differents !! donc je ne peux pas faire -L/lib -lmalib -I/src ... parce que c ds des sous repertoires !!
est-ce qu'il faut que je m'amuse a inclure toutes les dependances ... ou alors y'a un truc avec le MakeFile ??