Bug #978
closedError with Boost 1.47
0%
Description
I just try to compile WT with Boost under mingw (mingw 4.4 used by Qt Creator)
No problem with Boost 1.46.1 (and under) but error with the last one (1.47) they update boost::random.
I experienced the same problem compiling WT with Boost under gcc 4.2.1 under Mac OS X 10.7.1 Lion:
[ 0%] Building CXX object src/CMakeFiles/wt.dir/web/random_device.o
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:45: error: 'const unsigned int boost::random::random_device::min_value' is not a static member of 'class boost::random::random_device'
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:45: error: uninitialized const 'boost::random::random_device::min_value'
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:46: error: 'const unsigned int boost::random::random_device::max_value' is not a static member of 'class boost::random::random_device'
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:46: error: uninitialized const 'boost::random::random_device::max_value'
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:51: error: 'const char* const boost::random::random_device::default_token' is not a static member of 'class boost::random::random_device'
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp: In constructor 'boost::random::random_device::random_device(const std::string&)':
/Users/fpisidoro/Downloads/wt-3.1.10/src/web/random_device.cpp:162: error: 'max_value' was not declared in this scope
make[2]: * [src/CMakeFiles/wt.dir/web/random_device.o] Error 1
make[1]: * [src/CMakeFiles/wt.dir/all] Error 2
make: * [all] Error 2
Updated by Wim Dumon about 13 years ago
This will be resolved in Wt 3.1.11. Boost changed their boost::random interface.
Use a git version of Wt or downgrade to boost 1.45.
Wim.
Updated by Koen Deforche about 13 years ago
- Status changed from New to Resolved
- Target version set to 3.1.11
Updated by Koen Deforche about 13 years ago
- Status changed from Resolved to Closed
Resolved in Wt 3.1.11
Updated by Dries Staelens over 12 years ago
This issue still occurs using boost 1.48 and Wt 3.2.0.
Updated by Kurt Roeckx over 12 years ago
Dries Staelens wrote:
This issue still occurs using boost 1.48 and Wt 3.2.0.
And still with 3.2.1
Updated by Kurt Roeckx over 12 years ago
There is a patch for this issue in this bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653807
PS: I can't seem to re-open this bug report
Updated by Wim Dumon over 12 years ago
Kurt,
I'm a bit confused - Wt's implementation of random_device is no longer used with recent boost versions. Can you check if the cmake variable BOOST_NO_RANDOM is correctly detected? I believe it should be OFF - try to toggle it and hopefully that fixes the problem.
I can't change the status of this bug report neither.
Wim.
Updated by Zalu Hobgobicus over 11 years ago
I ran into this today, trying to build Wt 3.2.3 with Boost 1.48 installed.
Updated by Zalu Hobgobicus over 11 years ago
Also, I tried reverting my Boost libs to 1.46 as the original poster said would work, but it still failed. I get:
../src/libwt.so.3.2.3: undefined reference to `boost::random::random_device::operator()()'
../src/libwt.so.3.2.3: undefined reference to `boost::random::random_device::~random_device()'
../src/libwt.so.3.2.3: undefined reference to `boost::random::random_device::random_device()'
Updated by Wim Dumon over 11 years ago
This has to do with boost_random detection. The first time cmake is executed on a fresh build directory (empty cache), it will determine if boost.random exists. If it doesn't (e.g. because you supplied the wrong boost_prefix), it will remember it forever. You can always fix this by setting BOOST_NO_RANDOM to the proper value for your boost.
Wim.