Closed 99991 closed 3 years ago
Thank you for the detailed report.
It's better to use recent versions of the libraries, ie boost and eigen, which requires to build them from scratch.
As for the Cuda version, you should check before which cuda version to install on your system based on the gcc version that comes with your system https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
No need to reclone the whole project to get rid of the cmake cache, either remove CMakeCache.txt or remove and recreate the directory in which you are building.
Maybe @griwodz can help with the last error.
All that said, we need to update and make more clear the requirements and the building options.
Define BOOST_NO_CXX11_CONSTEXPR and it'll take care of this for you... I went through upgrading the whole toolchain and came back to that as more or less the simplest point to just get things working.
I have the same error. Ubuntu 16.04 cuda 10.0 opencv 3.4.10 eigen 3.3.7
I build without cuda is ok. I tried use Boost 1.66.0 / 1.70.0 / 1.73.0,but all failed with cuda10.0. They are all the same error.
ERROR list
/home/kevin/xena/CCTag/src/cctag/Identification.cpp:92:65: required from here
/usr/local/include/boost/parameter/aux_/arg_list.hpp:936:9: error: body of constexpr function ‘constexpr boost::paramete r::aux::arg_list<TaggedArg, Next, EmitsErrors>::reference boost::parameter::aux::arg_list<TaggedArg, Next, EmitsErrors>: :operator[](const boost::parameter::keyword
/home/kevin/xena/CCTag/src/cctag/utils/LogTime.hpp:35:52: required from here
/usr/local/include/boost/parameter/aux_/arg_list.hpp:936:9: error: body of constexpr function ‘constexpr boost::paramete r::aux::arg_list<TaggedArg, Next, EmitsErrors>::reference boost::parameter::aux::arg_list<TaggedArg, Next, EmitsErrors>: :operator[](const boost::parameter::keyword
And I tride Define BOOST_NO_CXX11_CONSTEXPR when I install boost, but no use for me. Please help me., thank you very much.
BOOST_NO_CXX11_CONSTEXPR should be added to cctag
BOOST_NO_CXX11_CONSTEXPR should be added to cctag
Where to add, in cmakelist.txt or Multiresolution.cpp? Can you give me a example? I
You can add it here https://github.com/alicevision/CCTag/blob/develop/src/CMakeLists.txt#L111
target_compile_definitions(CCTag
PUBLIC -DCCTAG_WITH_CUDA -DCUB_CDP -DBOOST_NO_CXX11_CONSTEXPR
PRIVATE ${TBB_DEFINITIONS})
Wow! I spent a few long nights trying to get this to compile and all I actually needed to do was add that definition.
Thank you for providing the solution, I finally got it to build.
Is there a reason this isn't part of the repo? Would you like me to submit a pull request?
@tlalexander Yes, it would be good to make a PR for that.
fixed in #174
also using ubuntu 18.04, here's what i need in order to finish the make command as of now:
I spent this day trying to build this library and wanted to list the errors I came across and some of the fixes I found.
Error
Requires at least boost-1.66.0, but Ubuntu 18.04 only has boost-1.65.1:
Fix
Uninstall boost and build from source.
Make a directory named
/usr/local/boost_1_71_0
or whatever the current version is. You might have to chmod the directory ifb2
fails later on.Download boost, decompress and go to directory: https://www.boost.org/users/download/
./bootstrap.sh --prefix=/usr/local/boost_1_71_0
./b2 install
Various stackoverflow answers recommend adding some ppa, but it is out of date and the server is offline by now.
Error
CUDA only works with gcc-6.
Fix
Install gcc-6(-base?) and add
-DCMAKE_C_COMPILER=/usr/bin/gcc-6
to the cmake command:cmake .. -DOpenCV_DIR=/your_path_to_opencv/opencv/build/ -DCMAKE_C_COMPILER=/usr/bin/gcc-6
Error
There is a one-line patch to fix this, but it is not the only error caused by old Eigen versions. I would instead recommend to uninstall eigen and build it from source.
Download eigen, unzip,
cd yourEigenDirectory
,mkdir build
,cmake ..
,sudo make install
http://eigen.tuxfamily.org/index.php?title=Main_PageError
cmake
might try to cache old boost or eigen libraries, resulting in cryptic version errors or not-found errors.Fix
Remove the CCTag directory and clone it again to get rid of cached garbage.
Error
Build fails at 60%
Fix
Unknown, but building for CPU instead of CUDA does not have this error:
cmake .. -DOpenCV_DIR=/yourPathToOpenCV/opencv/build/ -DCCTAG_WITH_CUDA:BOOL=OFF