2010-04-25 27 views
3

FFTW 2.x crée un fichier .la (sous le répertoire fftw/.libs).Comment puis-je obtenir un fichier .so à partir d'un fichier .la?

Je pense que j'ai besoin d'un fichier .so pour lier. (Je ne suis pas sûr, parce que je suis un débutant gcc).

+0

Une raison particulière pour laquelle vous utilisez une ancienne version de FFTW? –

+0

Je ne pouvais pas obtenir la version 3.x à construire du tout sur ma machine. Quelque chose dans le répertoire "tests" l'a fait échouer. Je ne peux pas me souvenir du problème exact maintenant, mais 2.x construit bien. – Ries

Répondre

5

En général, sous Linux, un fichier .so est une bibliothèque dynamique et un fichier .a ou .la est associé de manière statique. Lequel vous avez besoin dépend de votre application et comment vous avez installé/construit la bibliothèque. Pour un tutoriel sur la liaison statique ou dynamique, voir this site. Aussi, avez-vous construit fftw vous-même à partir de la source, ou avez-vous utilisé un gestionnaire de paquets? Cela aiderait à répondre à votre question. En ce qui concerne l'utilisation de gcc, consultez ce manual page, cela pourrait effacer certaines choses. Donc, oui, la réponse courte est soit de coller avec le .a ou lors de la construction de fftw spécifier que vous voulez une bibliothèque partagée. ./configure --enable-shared

+0

je l'ai construit à partir de la source – Ries

+0

les autres libs que j'utilise sont tous .so et sont liés à l'aide de -lpython2.4 par exemple, où j'ai un libpython2.4.so.0.0.0 – Ries

+0

Eh bien, dans ce cas, quand vous compilez la bibliothèque dont vous avez besoin pour spécifier 'shared' et non 'static'. Si vous utilisez une distribution comme unbuntu ou fedora, utilisez simplement le gestionnaire de paquets et installez le paquet -devel. Lors de la construction, ajoutez --enable-shared lorsque vous appelez ./configure A partir du manuel fftw. http://www.fftw.org/fftw3_doc/Installation-on-Unix.html#Installation-on-Unix – zdav