Project

General

Profile

Actions

Bug #978

closed

Error with Boost 1.47

Added by Anonymous about 13 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
Start date:
09/02/2011
Due date:
% Done:

0%

Estimated time:

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

Actions #1

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.

Actions #2

Updated by Koen Deforche about 13 years ago

  • Status changed from New to Resolved
  • Target version set to 3.1.11
Actions #3

Updated by Koen Deforche about 13 years ago

  • Status changed from Resolved to Closed

Resolved in Wt 3.1.11

Actions #4

Updated by Dries Staelens over 12 years ago

This issue still occurs using boost 1.48 and Wt 3.2.0.

Actions #5

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

Actions #6

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

Actions #7

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.

Actions #8

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.

Actions #9

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()'

Actions #10

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.

Actions

Also available in: Atom PDF