Question

J'utilise autoconf pour détecter les bibliothèques Boost, avec le soutien du autoconf- macros d'archives et ils fonctionnent bien avec les bibliothèques de stimuler l'ensemble du système, mais échouent si je compile manuellement coup de pouce dans mon répertoire:

sb@stephane:~/devel/spectra2$ ./configure --with-boost=/home/sb/local/
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for boostlib >= 1.31.0... yes
checking whether the Boost::Program_Options library is available... yes
checking for exit in -lboost_program_options... yes
checking whether the Boost::Filesystem library is available... yes
checking for exit in -lboost_filesystem... no
checking for exit in -lboost_filesystem... (cached) no
checking for exit in -lboost_filesystem... (cached) no
configure: error: Could not link against boost_filesystem !

Comme vous pouvez le voir, il détecte certaines bibliothèques très bien, mais il échoue avec boost système de fichiers. Ce sont le contenu de ~ / local / lib:

sb@stephane:~$ ls -1 /home/sb/local/lib/
libboost_filesystem.a
libboost_filesystem.so
libboost_filesystem.so.1.42.0
libboost_program_options.a
libboost_program_options.so
libboost_program_options.so.1.42.0
libboost_system.a
libboost_system.so
libboost_system.so.1.42.0
libboost_thread.a
libboost_thread.so
libboost_thread.so.1.42.0

Alors la bibliothèque est là. J'ai essayé à la fois stimuler et de stimuler-1,39-1,42 sans résultat différent, aucune idée pourquoi est-ce qui se passe? Ai-je oublié quelque chose?

Était-ce utile?

La solution

Depuis boost 1,39 libboost_filesystem dépend libboost_system. Avant de 1,39, vous pouvez seulement créer un lien vers boost_filesystem, dans les versions ultérieures, vous devez créer un lien vers les deux.

Peut-être qu'il a quelque chose à voir avec votre erreur.

Autres conseils

Je l'ai trouvé boost.m4 être beaucoup plus robuste que les macros Boost disponibles Archive de la macro Autoconf. Vous pouvez avoir une bonne chance de migrer vers boost.m4 simplement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top