2013-05-23 9 views
6

Ho scaricato la versione 1.51 di Boost, l'ho costruita e l'ho messa in/usr/local/boost_1_51_0. Ho anche scaricato mongo-cxx-driver-v2.4. Dato che non esiste alcun Makefile, devo eseguire scons, poiché questo progetto utilizza il nuovo ambiente di sviluppo python. Quando eseguo scons, controlla boost_thread-mt e boost_thread, da cui entrambi restituiscono "no". Ovviamente, non vedo di avere un boost nella directory/usr/local. Dato che sono un Make e non una persona da scons, come faccio a ottenere il processo di costruzione di mongodb per vedere la mia versione di boost?Libreria client Mongo C++ non vede il mio potenziamento

routerwc:~/mongo_proj/mongo-cxx-driver-nightly # scons --cpppath=/usr/local/boost_1_51_0/ --libpath=/usr/local/boost_1_51_0/stage/lib/ 
scons: Reading SConscript files ... 
Checking for C++ library boost_thread-mt... no 
Checking for C++ library boost_thread... no 
routerwc:~/mongo_proj/mongo-cxx-driver-nightly # cat config.log 
file /root/mongo_proj/mongo-cxx-driver-nightly/SConstruct,line 70: 
Configure(confdir = .sconf_temp) 
scons: Configure: Checking for C++ library boost_thread-mt....sconf_temp/conftest_0.cpp <- 
| 
| 
| 
|int 
|main() { 
| 
|return 0; 
|} 
| 
g++ -o .sconf_temp/conftest_0.o -c -O3 -pthread -D_SCONS -DMONGO_EXPOSE_MACROS -Ibuild -Ibuild/mongo .sconf_temp/conftest_0.cpp 
g++ -o .sconf_temp/conftest_0 -Wl,--as-needed -Wl,-zdefs -pthread .sconf_temp/conftest_0.o -lboost_thread-mt 
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_thread-mt 
collect2: ld returned 1 exit status 
scons: Configure: no 

scons: Configure: Checking for C++ library boost_thread....sconf_temp/conftest_1.cpp <- 
| 
| 
| 
|int 
|main() { 
| 
|return 0; 
|} 
| 
g++ -o .sconf_temp/conftest_1.o -c -O3 -pthread -D_SCONS -DMONGO_EXPOSE_MACROS -Ibuild -Ibuild/mongo .sconf_temp/conftest_1.cpp 
g++ -o .sconf_temp/conftest_1 -Wl,--as-needed -Wl,-zdefs -pthread .sconf_temp/conftest_1.o -lboost_thread 
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lboost_thread 
collect2: ld returned 1 exit status 
scons: Configure: no 
+1

avete provato l'impostazione cpppath e LIBPATH? Ad esempio: scons --cpppath =/usr/include/boost141/--libpath =/usr/lib64/boost141/ –

+0

Non ce l'ho. Lasciami fare un tentativo. – user2414654

+0

Ancora non funziona. Ecco la mia situazione ... ~/mongo_proj/mongo-cxx-driver-nightly # scons --cpppath =/usr/local/boost_1_51_0/--libpath =/usr/local/boost_1_51_0/stage/lib/ scons: Leggere i file di SConscript ... Controllare la libreria C++ boost_thread-mt ... no Controllare la libreria C++ boost_thread ... no Arresta qui. Ecco la biblioteca boost_thread ... lrwxrwxrwx 1 root root 182.042 2013/05/21 07:35 /usr/local/boost_1_51_0/stage/lib/libboost_thread.so Quindi io non sono ancora sicuro perché non è scons vedendo le mie librerie di boost. – user2414654

risposta

0

Im indovinando voi non ha ancora installato le librerie, appena eseguito ./b2 piuttosto che ./b2 installare

Potete provare il seguente?

scons --extrapath="/usr/local/boost_1_51_0/,/usr/local/boost_1_51_0/stage"

1

ho avuto lo stesso problema, ho scaricato ed estratto di spinta in/usr/include/boost_1_57_0 poi corro

sudo apt-get install libboost-all-dev 

quindi nella directory ho i driver C++ corro

sudo scons --extrapath=/usr/include/boost_1_57_0 
0

Ho risolto questo problema.

Nelle SCons, l'ordine di testare le librerie di boost è sbagliato.

Aprire il file SConstruct e cambiare la seguente riga:

boostLibs = [ "regex", "thread", "system" ] 

a

boostLibs = [ "system", "regex", "thread" ] 

Cheers,

+0

Ho inserito la risposta precedente. –

Problemi correlati