리눅스 몽고DB c++ 드라이버 테스트 프로그램 컴파일 에러
안녕하세요
리눅스 CentOS에서 몽고DB c++ 드라이버 테스트를 위한 프로그램 컴파일 에러 입니다
INC = -I/usr/local/mongodb/include -I/usr/local/include
LIBS = -L/usr/local/mongodb/lib -L/usr/local/lib -pthread -lmongoclient -lboost_system -lboost_filesystem -lboost_thread-mt -lboost_program_options
헤더, 라이브러리 링크는 위와 같이 하였구요
컴파일 하게되면..
g++ -o mongotest ux_main.o MongoConn.o FingerprintDB.o FingerprintDB_MongoImpl.o OIndexDB_MongoImpl.o TIndexDB_MongoImpl.o -L/usr/local/mongodb/lib -L/usr/local/lib -pthread -lmongoclient -lboost_system -lboost_filesystem -lboost_thread-mt -lboost_program_options
/usr/local/mongodb/lib/libmongoclient.a(log.o): In function `exists':
/root/mongodb-src-r2.4.9/src/third_party/boost/boost/filesystem/v3/operations.hpp:289: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/usr/local/mongodb/lib/libmongoclient.a(log.o): In function `is_directory':
/root/mongodb-src-r2.4.9/src/third_party/boost/boost/filesystem/v3/operations.hpp:294: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/usr/local/mongodb/lib/libmongoclient.a(log.o): In function `is_regular':
/root/mongodb-src-r2.4.9/src/third_party/boost/boost/filesystem/v3/operations.hpp:315: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
collect2: ld returned 1 exit status
make: *** [mongotest] 오류 1
booost::filesystem3 undefined reference 에러 발생합니다...
참고해보세요.
booost::filesystem3 undefined reference 에러 발생합니다...
http://www.google.co.kr/search?hl=ko&source=hp&biw=&bih=&q=booost%3A%3Afilesystem3+undefined+reference+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4...&gbv=2&oq=booost%3A%3Afilesystem3+undefined+reference+%EC%97%90%EB%9F%AC+%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4...&gs_l=heirloom-hp.12...363.363.0.1654.1.1.0.0.0.0.111.111.0j1.1.0....0...1ac.1.34.heirloom-hp..1.0.0.rJ2s7qepg5Q
http://leanu.tistory.com/category/Programming/C%20&%20C++
2. Undefined reference 관련 에러
- 해결 1 : library path 와 name 을 확인한다
- 해결 2 : 다른 library에 영향을 받지않는 독립적인 library 부터 먼저 붙이도록 한다. 이
문제는 static library에서 나기때문에 해당사항이 없다면 별로 고려하지 않아도
된다. 하지만 makefile 안에 library를 추가하는경우 dependency를 고려하여 하나씩
써 나간다면 나중에 에러를 찾는데 드는 엄청난 시간을 절약할 수 있다.
http://stackoverflow.com/questions/7972314/c-boostfilesystem-undefined-reference-to-boostfilesystem3pathroot-nam
You have to link with -lboost_filesystem -lboost_system. Boost filesystem is not a header-only library; rather, it depends on compiled components.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기