2013-05-23 26 views
6

Tôi đã tải phiên bản Boost 1.51, xây dựng nó và đặt nó vào/usr/local/boost_1_51_0. Tôi cũng đã tải xuống mongo-cxx-driver-v2.4. Vì không có Makefile, tôi phải chạy scons, vì dự án này đang sử dụng môi trường xây dựng python mới. Khi tôi chạy scons, nó kiểm tra boost_thread-mt và boost_thread, từ đó cả hai đều trả về "no". Rõ ràng, nó không thấy rằng tôi đã tăng trong thư mục/usr/local. Vì tôi là một người không phải là người làm và không phải là một người scons, làm thế nào để tôi có được quá trình xây dựng mongodb để xem phiên bản tăng cường của tôi?Thư viện khách hàng Mongo C++ không thấy tăng cường của tôi

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

Bạn đã cố gắng thiết lập cpppath và LIBPATH? Ví dụ: scons --cpppath =/usr/include/boost141/--libpath =/usr/lib64/boost141/ –

+0

Tôi không có. Để tôi cho đi. – user2414654

+0

Điều đó vẫn không hoạt động. Đây là tình huống của tôi ... ~/mongo_proj/mongo-cxx-driver-night # scons --cpppath =/usr/local/boost_1_51_0/--libpath =/usr/local/boost_1_51_0/stage/lib/ scons: Đọc các tập tin SConscript ... Kiểm tra thư viện C++ boost_thread-mt ... no Kiểm tra thư viện C++ boost_thread ... no Dừng tại đây. Dưới đây là thư viện boost_thread ... lrwxrwxrwx 1 root root 182.042 2013/05/21 07:35 /usr/local/boost_1_51_0/stage/lib/libboost_thread.so Vì vậy, tôi vẫn không chắc chắn lý do tại sao không phải là scons nhìn thấy các thư viện tăng cường của tôi. – user2414654

Trả lời

0

Im đoán bạn didnt cài đặt libs, chỉ cần chạy ./b2 hơn ./b2 cài đặt

Bạn có thể thử những điều sau đây?

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

1

Tôi đã có cùng một vấn đề, tôi tải về và giải nén tăng trong/usr/include/boost_1_57_0 sau đó tôi chạy

sudo apt-get install libboost-all-dev 

Sau đó, trong thư mục i có C++ lái xe tôi chạy

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

Tôi giải quyết vấn đề này.

Trong SCons, thứ tự kiểm tra thư viện tăng là sai.

Mở tệp SConstruct và thay đổi dòng sau:

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

để

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

Chúc mừng,

+0

Tôi đặt câu trả lời trước. –

Các vấn đề liên quan