Bonjour j'ai un petit probl�me de compilation.
Je veux compiler sous linux un fichier .cpp pour en avoir en fin un fichier .so
Pouvez vous m'aider en me sp�cifiant la d�marche � suivre.
Version imprimable
Bonjour j'ai un petit probl�me de compilation.
Je veux compiler sous linux un fichier .cpp pour en avoir en fin un fichier .so
Pouvez vous m'aider en me sp�cifiant la d�marche � suivre.
La faq r�pond � ton probl�me.
En l'occurence, essaie g++ fichier.cpp -o nom_du_programme -Wall -Wextra -WerrorJe te recommande vivement de lire la faq d'un bout � l'autre.
Mhhh... si je peux me permettre pourquoi (?) veux-tu g�n�rer un .so :koi:
G�n�ralement le .so se g�n�re lorsqu'on developpe une bibliotheque.
Salut,Oui, et alors :question:
Les EDI, quels qu'ils soient, sont effectivement quelque chose de g�nial pour la gestion de projets.Citation:
car par exemple sur Qt Creator, pas besoin de savoir comment faire... on a juste a s�lectionn� "biblioth�que C++" lorsqu'on veut d�buter le projet, et quand on veut compiler celui-ci, si il n'y a pas d'erreur, il g�n�re le .so
Sans balgue: on n'a plus rien � faire: on rajoute comme on veut des fichiers, des d�pendances, bref, tout ce qu'on veut et, en plus, ils fournissent l'auto compl�tion :D
Mais bon, le but des biblioth�ques, qu'elles soient statique (libxxx.a) sous dynamique (.so / .dll), est, classiquement, de permettre de les int�grer facilement � diff�rents projets.
Si l'on cr�e une d�pendance envers un EDI particulier pour la compilation, on limite de facto le cadre dans lequel la biblioth�que peut �tre g�n�r�e, et donc, utilis�e.
Si on peut envisager de fournir "le n�cessaire" pour pouvoir g�rer le projet dans un EDI ou un autre, il est quand m�me largement pr�f�rable de faire en sorte que la compilation de la biblioth�que (ou de n'importe quel projet, d'ailleurs) puisse s'effectuer � l'aide d'un syst�me d'automatisation de la compilation (autotools, CMake, Makefiles, ...), surtout si l'on veut fournir la biblioth�que sous la forme opensource ;)
Pour g�n�rer une biblioth�que dynamique � partir d'un fichier c++, c'est le m�me principe que pour un fichier c :
compilation : g++ -c -fPIC mon_fichier.cpp
liaison : g++ mon_fichier.o -o maLib.so -shared
Presque. -fPIC ne fait que dire qu'on va g�n�rer un fichier relocable. If faut aussi pr�venir le code qu'on compile de ce fait, en d�finissant la macro PIC.
D'un point de vue purement th�orique, �a ne devrait pas �tre n�cessaire - l'utilisation de -fPIC force la d�finition des macros __pic__ et __PIC__, ce qui devrait �tre suffisant. Mais il existe encore beaucoup de code qui se basent dur la macro PIC - il faut donc la d�finir aussi.Code:
1
2 g++ -fPIC -DPIC -c mon_fichier.cpp -o mon_fichier.o
Ah bon ? Jamais vu un code qui n�cessitait -DPIC !
C'est ce qu'on appelle de la chance :)
gmp 4.3.2, fichier tune/speed.h, ligne 316.
Pour info, gmp est l'une des composantes majeure de gcc. C'est la librairie bignum de GNU.
On trouve aussi plusieurs #if defined PIC dans e2fsprogs 1.40.11 (dans intl/relocatable.c).
En cherchant bien, je devrais pouvoir en trouver d'autres :)
Tu peux aussi faire �a avec CMake, il y a un tutoriel sur le site : http://florian-goujeon.developpez.co...initiation/#LV