Bug #980
closedCompilation error debian 6.1 (boost package problem)
50%
Description
Hello everyone.
I use gcc 4.4.5 on debian 6.1 and cmake version 2.8.2.
I noticed an compilation error
[ 79%] Building CXX object test/CMakeFiles/test.dir/dbo/Benchmark.o
[ 81%] Building CXX object test/CMakeFiles/test.dir/private/DboImplTest.o
Linking CXX executable test
CMakeFiles/test.dir/private/I18n.o: In function `__static_initialization_and_destruction_0':
/root/work/boost_1_47_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/root/work/boost_1_47_0/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/root/work/boost_1_47_0/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
CMakeFiles/test.dir/private/I18n.o: In function `exists':
/root/work/boost_1_47_0/boost/filesystem/v3/operations.hpp:218: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
collect2: ld returned 1 exit status
make[2]: * [test/test] Fehler 1
make[1]: * [test/CMakeFiles/test.dir/all] Fehler 2
make: * [all] Fehler 2
The error shows up, if the packaged version of boost is installed,
but the cmake wt script has been run with:
cd wt
mkdir build
cd build
cmake -DBOOST_ROOT=/root/work/boost_1_47_0 -DCMAKE_INSTALL_PREFIX=/usr ../
Temporary fix:
remove the debian packaged boost (developer version) with:
aptitude unmarkauto "?name(gccxml)"
RECHECK YOUR APTITUDE OUTPUT TWICE!!! So that you do not delete other dependecies who are neded for compiling wt. They can be ignored for autoremoval with aptitude unmarkauto.
aptitude purge "?name(libboost1.42)"
I think this is a error within the wt cmake script which uses system include paths before custom set paths.
I currently have not much time to investigate this error further, but on the next Weekend I can go on with it.
Greetings Louis
Updated by Koen Deforche over 13 years ago
- Status changed from New to InProgress
- Assignee set to Koen Deforche
Hey Louis,
It seems that the include files are correct, but the linked library version could mismatch.
Although, cmake lists dynamic libraries using the explicit path, like "c ... /opt/software/boost1_37/lib/libboost_program_options-gcc42-mt-1_37.so ..."
Could you verify the exact command that goes wrong? Use "VERBOSE=1 make" for this.
Regards,
koen
Updated by Koen Deforche about 13 years ago
- Target version changed from 3.1.11 to 3.2.0
Updated by Koen Deforche about 13 years ago
- Status changed from InProgress to Resolved
Closed because of lack of feedback
Updated by Koen Deforche about 13 years ago
- Status changed from Resolved to Closed