Git Product home page Git Product logo

Comments (8)

chennuo0125-HIT avatar chennuo0125-HIT commented on June 20, 2024

@sandwichmaker could you tell me why above problem occured ?

from ceres-solver.

sergiud avatar sergiud commented on June 20, 2024

The error stems from your Homebrew version of SuiteSparse not from Ceres:

/opt/homebrew/lib/cmake/SuiteSparse_config/SuiteSparse_configConfig.cmake:68 (find_dependency)

For some reason, the OpenMP C component is not usable. You could check the CMake configure log to identify the issue.

from ceres-solver.

chennuo0125-HIT avatar chennuo0125-HIT commented on June 20, 2024

@sergiud if not ceres proplem, why can i replace ceres version solve the problem ?

from ceres-solver.

chennuo0125-HIT avatar chennuo0125-HIT commented on June 20, 2024

@sergiud ceres 2.1.0 is ok, but ceres 2.2.0 not ok

from ceres-solver.

chennuo0125-HIT avatar chennuo0125-HIT commented on June 20, 2024

Three people around me have all experienced this problem,we just run "brew update" and the problem occurred, my home brew version: Homebrew 4.0.23-12-ge986264

from ceres-solver.

sergiud avatar sergiud commented on June 20, 2024

While Ceres 2.1.0 supported OpenMP as one of the threading backends, Ceres 2.2.0 removed OpenMP support in 06bfe6f. This is likely the reason why the issue no longer occurs in Ceres 2.2.0. However, even in 2.1.0 Ceres did nothing special here:

find_package(OpenMP REQUIRED)

Therefore, I suggest reporting the issue to Homebrew or SuiteSparse maintainers. There seems to be a conflict in the way OpenMP components are requested and used. Relying on a language specific version of OpenMP in the dependency chain can generally cause problems, e.g., if a CMake project that enables the use of a CXX compiler only also depends on a component requiring a C compiler (and vice versa).

from ceres-solver.

chennuo0125-HIT avatar chennuo0125-HIT commented on June 20, 2024

@sergiud how can i remove OpenMP support in ceres 2.1.0 ?

from ceres-solver.

sergiud avatar sergiud commented on June 20, 2024

You could try explicitly setting the CERES_THREADING_MODEL CMake variable, e.g., to CXX_THREADS to avoid Ceres invoking the above find_package call. Alternatively, you can unconditionally set the threading backend to CXX_THREADS here:

macro(set_ceres_threading_model CERES_THREADING_MODEL_TO_SET)
if ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "CXX_THREADS")
set_ceres_threading_model_to_cxx11_threads()
elseif ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "OPENMP")
set_ceres_threading_model_to_openmp()
elseif ("${CERES_THREADING_MODEL_TO_SET}" STREQUAL "NO_THREADS")
set_ceres_threading_model_to_no_threads()
else()
include(PrettyPrintCMakeList)
find_available_ceres_threading_models(_AVAILABLE_THREADING_MODELS)
pretty_print_cmake_list(
_AVAILABLE_THREADING_MODELS ${_AVAILABLE_THREADING_MODELS})
message(FATAL_ERROR "Unknown threading model specified: "
"'${CERES_THREADING_MODEL_TO_SET}'. Available threading models for "
"this platform are: ${_AVAILABLE_THREADING_MODELS}")
endif()
message("-- Using Ceres threading model: ${CERES_THREADING_MODEL_TO_SET}")
endmacro()

from ceres-solver.

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.