Pergunta

Estou usando o AutoConf para detectar bibliotecas de impulso, com o apoio do Macros Autoconf-Archive E eles funcionam bem com as bibliotecas de impulso em todo o sistema, mas falham se eu compilar manualmente o Boost no meu diretório doméstico:

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 !

Como você pode ver, ele detecta algumas bibliotecas bem, mas falha no Boost-Filesystem. Estes são o conteúdo 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

Então a biblioteca está lá. Eu tentei com o Boost-1.39 e o Boost-1.42 sem resultado diferente, alguma idéia de por que isso está acontecendo? Eu esqueci de algo?

Foi útil?

Solução

Desde que o Boost-1.39 libboost_filesystem depende do libboost_system. Antes de 1.39, você só poderia vincular ao Boost_filesystem, em versões posteriores, você precisa vincular a ambos.

Talvez tenha algo a ver com seu erro.

Outras dicas

encontrei boost.m4 Para ser muito mais robusto do que as macros Boost disponíveis no Arquivo Macro AutoConf. Você pode ter boa sorte, simplesmente migrando para aumentar.m4.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top