Code Monkey home page Code Monkey logo

Comments (4)

puzzlepaint avatar puzzlepaint commented on August 17, 2024

I am not sure, but I guess that this could for example be caused by different versions of the boost headers and libraries being present on the system, together with an incomplete configuration being done by the CMakeLists.txt files in the camera_calibration project, resulting in a mismatch that leads to those linker errors.

In principle, camera_calibration_baselib should be linked to the found boost libraries by this:

And it should get the headers via this PUBLIC property:

${Boost_INCLUDE_DIR}

But perhaps it could be that one of them is not defined, potentially leading to the use of a different system-level version as implicit fallback, causing inconsistencies with some system environments. For example, some googling suggests that perhaps it should be ${BOOST_INCLUDE_DIRS} instead of ${Boost_INCLUDE_DIR}. To check this, one could insert debug messages such as message(FATAL_ERROR "Debug: Boost headers: ${Boost_INCLUDE_DIR}").

from camera_calibration.

ceinem avatar ceinem commented on August 17, 2024

Hi, thanks for your reply. I tried to check the things you have mentioned, but couldn't find anything particular. Both ${BOOST_INCLUDE_DIRS} and ${BOOST_INCLUDE_DIR} return /urs/include, where boost is installed.

I tried removing my whole boost installation and setting it up again, but this also didn't help.

Do you think it might be a version problem? I'm running Ubuntu 20.04 with boost 1.71 installed from apt.

from camera_calibration.

puzzlepaint avatar puzzlepaint commented on August 17, 2024

I don't think that it is a problem with boost 1.71. I just successfully built camera_calibration on my Ubuntu 20.04 system, and according to ccmake the boost-related variables are set as follows:

 Boost_DIR                        /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0
 Boost_FILESYSTEM_LIBRARY_RELEA   /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0
 Boost_INCLUDE_DIR                /usr/include
 Boost_SERIALIZATION_LIBRARY_RE   /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.71.0
 Boost_SYSTEM_LIBRARY_RELEASE     /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0

My guess would still be that the build somehow uses the headers or libraries of a different boost version on your system, causing a mismatch. For example, I guess this could happen if there is also a boost install in /usr/local/include and this gets added to the list of include directories with higher priority than /usr/include (maybe due to a different library being used from there), but the build still links the libraries from the system install.

The paths used in the linker invocation can be checked by calling make in verbose mode, for example as follows:

VERBOSE=1 make -j8 camera_calibration

from camera_calibration.

ceinem avatar ceinem commented on August 17, 2024

Thanks for your help!!
I'm not 100% sure what solved it in the end, but I got it to compile now. During feature extraction, I'm running into some CUDA issues, but that's another topic. The boost issues seem to be solved for now. Thanks again!

from camera_calibration.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.