Skip to content
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

Mac OSX 11.6 Big Sur Undefined symbols for architecture x86_64 #551

Open
Camuvingian opened this issue Oct 27, 2021 · 1 comment
Open

Mac OSX 11.6 Big Sur Undefined symbols for architecture x86_64 #551

Camuvingian opened this issue Oct 27, 2021 · 1 comment
Labels

Comments

@Camuvingian
Copy link

Using the Cmake instructions here https://openvslam-community.readthedocs.io/en/latest/installation.html#subsection-common-linux-macos. Tried on the master branch as well as 9b41a4e
https://openvslam.readthedocs.io/en/master/installation.html

Also replaced all instances of # with </usr/local/opt/libomp/include/omp.h> in order to get to this step.

I found a few past issues, but was unable to follow the solution proposed here #210. I run

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DCMAKE_CXX_FLAGS=-std=c++11 \
    -DBUILD_SHARED_LIBS=ON \
    -DBUILD_UNITTESTS=OFF \
    -DBUILD_WITH_MARCH_NATIVE=ON \
    -DG2O_USE_CHOLMOD=OFF \
    -DG2O_USE_CSPARSE=ON \
    -DG2O_USE_OPENGL=OFF \
    -DG2O_USE_OPENMP=ON \
    ..

which works fine, I then run command make -j4 and I get the following error

[  1%] Building CXX object g2o/examples/interactive_slam/slam_parser/parser/CMakeFiles/parser_library.dir/bison_parser.cpp.o
[  1%] Building CXX object g2o/examples/interactive_slam/slam_parser/parser/CMakeFiles/parser_library.dir/slam_context.cpp.o
[  2%] Building CXX object g2o/solvers/csparse/CMakeFiles/csparse_extension.dir/csparse_helper.cpp.o
[  3%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/timeutil.cpp.o
[  4%] Building CXX object g2o/examples/interactive_slam/slam_parser/parser/CMakeFiles/parser_library.dir/driver.cpp.o
[  4%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/command_args.cpp.o
[  4%] Building CXX object g2o/solvers/csparse/CMakeFiles/csparse_extension.dir/csparse_extension.cpp.o
[  5%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/sparse_helper.cpp.o
[  5%] Building CXX object g2o/examples/interactive_slam/slam_parser/parser/CMakeFiles/parser_library.dir/flex_scanner.cpp.o
[  6%] Linking CXX shared library ../../../../lib/libg2o_csparse_extension.dylib
[  6%] Built target csparse_extension
[  6%] Building C object g2o/stuff/CMakeFiles/stuff.dir/os_specific.c.o
[  7%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/filesys_tools.cpp.o
[  8%] Linking CXX shared library ../../../../../../lib/libg2o_parser.dylib
[  8%] Built target parser_library
[  8%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/string_tools.cpp.o
[  9%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/property.cpp.o
[  9%] Building CXX object g2o/examples/interactive_slam/slam_parser/interface/CMakeFiles/interface_library.dir/parser_interface.cpp.o
[ 10%] Building CXX object g2o/examples/interactive_slam/slam_parser/interface/CMakeFiles/interface_library.dir/slam_context_interface.cpp.o
[ 10%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/sampler.cpp.o
[ 11%] Building CXX object g2o/stuff/CMakeFiles/stuff.dir/tictoc.cpp.o
[ 11%] Linking CXX shared library ../../../../../../lib/libg2o_interface.dylib
[ 11%] Built target interface_library
[ 11%] Linking CXX shared library ../../../lib/libg2o_stuff.dylib
[ 11%] Built target stuff
[ 12%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_graph.cpp.o
[ 12%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_graph_action.cpp.o
[ 13%] Building CXX object g2o/core/CMakeFiles/core.dir/marginal_covariance_cholesky.cpp.o
[ 13%] Building CXX object g2o/core/CMakeFiles/core.dir/matrix_structure.cpp.o
/Users/Camus/VRPM/SLAM/openvslam/g2o/g2o/core/hyper_graph_action.cpp:283:39: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression]
      if ( typeName.empty() || typeid(*it->second).name()==typeName){
                                      ^
/Users/Camus/VRPM/SLAM/openvslam/g2o/g2o/core/hyper_graph_action.cpp:289:39: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression]
      if ( typeName.empty() || typeid(**it).name()==typeName)
                                      ^
[ 14%] Building CXX object g2o/core/CMakeFiles/core.dir/batch_stats.cpp.o
2 warnings generated.
[ 14%] Building CXX object g2o/core/CMakeFiles/core.dir/parameter.cpp.o
[ 15%] Building CXX object g2o/core/CMakeFiles/core.dir/cache.cpp.o
[ 15%] Building CXX object g2o/core/CMakeFiles/core.dir/optimizable_graph.cpp.o
[ 16%] Building CXX object g2o/core/CMakeFiles/core.dir/solver.cpp.o
[ 16%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_factory.cpp.o
[ 17%] Building CXX object g2o/core/CMakeFiles/core.dir/estimate_propagator.cpp.o
/Users/Camus/VRPM/SLAM/openvslam/g2o/g2o/core/optimizable_graph.cpp:171:18: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression]
      if (typeid(**_parameters[i]).name()!=_parameterTypes[i]){
                 ^
/Users/Camus/VRPM/SLAM/openvslam/g2o/g2o/core/optimizable_graph.cpp:172:100: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression]
        cerr << __PRETTY_FUNCTION__ << ": FATAL, parameter type mismatch - encountered " << typeid(**_parameters[i]).name() << "; should be " << _parameterTypes[i] << endl;
                                                                                                   ^
[ 17%] Building CXX object g2o/core/CMakeFiles/core.dir/factory.cpp.o
[ 18%] Building CXX object g2o/core/CMakeFiles/core.dir/sparse_optimizer.cpp.o
[ 18%] Building CXX object g2o/core/CMakeFiles/core.dir/hyper_dijkstra.cpp.o
[ 19%] Building CXX object g2o/core/CMakeFiles/core.dir/parameter_container.cpp.o
[ 19%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm.cpp.o
[ 20%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_with_hessian.cpp.o
[ 20%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_gauss_newton.cpp.o
[ 21%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_levenberg.cpp.o
[ 21%] Building CXX object g2o/core/CMakeFiles/core.dir/optimization_algorithm_dogleg.cpp.o
[ 22%] Building CXX object g2o/core/CMakeFiles/core.dir/sparse_optimizer_terminate_action.cpp.o
[ 22%] Building CXX object g2o/core/CMakeFiles/core.dir/jacobian_workspace.cpp.o
[ 23%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel.cpp.o
[ 23%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel_impl.cpp.o
2 warnings generated.
[ 24%] Building CXX object g2o/core/CMakeFiles/core.dir/robust_kernel_factory.cpp.o
[ 24%] Linking CXX shared library ../../../lib/libg2o_core.dylib
Undefined symbols for architecture x86_64:
  "___kmpc_end_serialized_parallel", referenced from:
      g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::~SparseBlockMatrix() in marginal_covariance_cholesky.cpp.o
      g2o::SparseOptimizer::computeActiveErrors() in sparse_optimizer.cpp.o
  "___kmpc_for_static_fini", referenced from:
      _.omp_outlined. in marginal_covariance_cholesky.cpp.o
      _.omp_outlined. in sparse_optimizer.cpp.o
  "___kmpc_for_static_init_4", referenced from:
      _.omp_outlined. in marginal_covariance_cholesky.cpp.o
      _.omp_outlined. in sparse_optimizer.cpp.o
  "___kmpc_fork_call", referenced from:
      g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::~SparseBlockMatrix() in marginal_covariance_cholesky.cpp.o
      g2o::SparseOptimizer::computeActiveErrors() in sparse_optimizer.cpp.o
  "___kmpc_global_thread_num", referenced from:
      g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::~SparseBlockMatrix() in marginal_covariance_cholesky.cpp.o
      g2o::SparseOptimizer::computeActiveErrors() in sparse_optimizer.cpp.o
  "___kmpc_serialized_parallel", referenced from:
      g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::~SparseBlockMatrix() in marginal_covariance_cholesky.cpp.o
      g2o::SparseOptimizer::computeActiveErrors() in sparse_optimizer.cpp.o
  "_omp_destroy_lock", referenced from:
      g2o::OptimizableGraph::Vertex::~Vertex() in optimizable_graph.cpp.o
  "_omp_init_lock", referenced from:
      g2o::OptimizableGraph::Vertex::Vertex() in optimizable_graph.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../lib/libg2o_core.dylib] Error 1
make[1]: *** [g2o/core/CMakeFiles/core.dir/all] Error 2
make: *** [all] Error 2

Can anyone offer any insight in how to get this to link?

Copy link

github-actions bot commented Jan 6, 2025

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@github-actions github-actions bot added the Stale label Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant