mongodb — клиентская библиотека Mongo C ++ не видит моего повышения

Я скачал Boost версии 1.51, собрал его и поместил в / usr / local / boost_1_51_0. Я также скачал mongo-cxx-driver-v2.4. Поскольку Makefile не существует, я должен запускать scons, так как этот проект использует новую среду сборки python. Когда я запускаю scons, он проверяет boost_thread-mt и boost_thread, из которых оба возвращают «нет». Очевидно, я не вижу, что у меня есть повышение в каталоге / usr / local. Так как я являюсь мастером, а не мошенником, как мне заставить процесс сборки mongodb увидеть мою версию boost?

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

6

Решение

У меня была та же проблема, я загружаю и извлекаю boost в / usr / include / boost_1_57_0, затем запускаю

sudo apt-get install libboost-all-dev

Затем в каталоге у меня есть драйверы C ++, я запускаю

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

Другие решения

Я предполагаю, что вы не установили библиотеки, просто запустили ./b2 вместо ./b2 install

Можете ли вы попробовать следующее?

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

0

Я решаю эту проблему.

В SCons порядок тестирования буст-библиотек неправильный.

Откройте файл SConstruct и измените следующую строку:

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

в

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

Ура,

0
По вопросам рекламы [email protected]