-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
building gadgetron on VM with boost 1.68 causes undefined reference to `boost::system::detail::generic_category_instance' #161
Comments
@evgueni-ovtchinnikov please try again with the new versiono fthe Superbuild. It works for me. |
linking executable test_ismrmrd failed with error messages
had to use the same trick of setting (after failed update) |
Confirmed that this also happens with gcc 5.4 and older Gadgetron, e.g. gadgetron/gadgetron@e7eb430 It disappears when editing gadgetron's CMakeLists.txt to force use It seems therefore that we cannot use a packaged system boost 1.68, and that we'd have to build Boost ourselves, making sure that c++-14 is used. sigh. |
Lengthy discussion at https://groups.google.com/forum/#!topic/boost-developers-archive/EWG5NVOZo_g Conclusion is that you need to build boost (or any C++ library) with the same C++ standard version as you own code. This seems to imply that we need to figure out what compiler options Gadgetron used, and then always build boost ourselves, using e.g. Note that boost.system is header-only from 1.69, which might help a bit (but could still throw up problems for other boost libraries) |
Current Gadgetron master attempts to use C++ 20 (CMake will downgrade if it is not supported by the compiler) |
We get linking problems with boost system if the C++ versions don't match (i.e. the one used to compile boost, and the current one), specifically with boost::system::detail::generic_category_instance Setting this variable forces Boost to use an inline variable, as opposed to the instantiated variable in the library Fixes SyneRBI#161
We get linking problems with boost system if the C++ versions don't match (i.e. the one used to compile boost, and the current one), specifically with boost::system::detail::generic_category_instance Setting these preprocessor variables forces Boost to use inline variables, as opposed to the instantiated variables in the library Fixes SyneRBI#161
set preprocessor defines BOOST_ERROR_CODE_HEADER_ONLY and BOOST_SYSTEM_NO_DEPRECATED Fixes #161
Building Gadgetron needs gcc6 and boost 1.65.0 We tried with 1.68.0, but then got
This might be related to boostorg/system#26 as g++-6 defaults to C++-14 and therefore resolved by making sure that boost is built with gcc-6. This is actually #14.
The text was updated successfully, but these errors were encountered: