2013-05-23 16 views
6

Pobrałem wersję Boost 1.51, zbudowałem ją i umieściłem w/usr/local/boost_1_51_0. Pobrałem też mongo-cxx-driver-v2.4. Ponieważ nie ma Makefile, muszę uruchomić scons, ponieważ ten projekt używa nowego środowiska budowania Pythona. Kiedy uruchamiam scons, sprawdza on boost_thread-mt i boost_thread, z których oba zwracają "nie". Oczywiście, nie widzę, że mam boost w katalogu/usr/local. Odkąd jestem Make, a nie scons person, jak mogę uzyskać proces budowania monondb, aby zobaczyć moją wersję boost?Biblioteka klienta Mongo C++ nie dostrzega mojego wzrostu

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

Czy próbowano ustawienie cpppath i LIBPATH? Na przykład: scons --cpppath =/usr/include/boost141/--libpath =/usr/lib64/boost141/ –

+0

Nie mam. Pozwól mi odejść. – user2414654

+0

To nadal nie działa. Oto moja sytuacja ... ~/mongo_proj/mongo-cxx-driver-nightly # scons --cpppath =/usr/local/boost_1_51_0/--libpath =/usr/local/boost_1_51_0/stage/lib/ scons: Odczytywanie plików SConscript ... Sprawdzanie biblioteki C++ boost_thread-mt ... no Sprawdzanie biblioteki C++ boost_thread ... no Zatrzymuje się tutaj. Oto biblioteka boost_thread ... lrwxrwxrwx 1 root root 182042 21.05.2013 07:35 /usr/local/boost_1_51_0/stage/lib/libboost_thread.so Więc ja nadal nie jestem pewien, dlaczego nie jest scons widząc moje pobudzające biblioteki. – user2414654

Odpowiedz

0

Im zgadywania zrobił zainstalowaniu bibliotekami, po prostu zabrakło ./b2 zamiast ./b2 zainstalować

można wypróbować następujące?

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

1

miałem ten sam problem, pobierz i rozpakuj impuls w/usr/include/boost_1_57_0 potem biegnę

sudo apt-get install libboost-all-dev 

Następnie w katalogu Mam C++ sterowniki biegnę

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

Rozwiązuję ten problem.

W SCons, kolejność testowania bibliotek boost jest niepoprawna.

Otwórz plik SConstruct i zmienić linię:

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

do

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

Cheers,

+0

Wstawiłem poprzednią odpowiedź. –