Cartographer编译时的一个错误

执行

catkin_make_isolated --install --use-ninja

结果:

==> ninja -j8 -l8 in '/home/jason/Project/catkin_ws/build_isolated/ceres-solver/install'
[306/323] Linking C executable bin/curve_fitting_c
FAILED: : && /usr/bin/cc -fopenmp -O3 -DNDEBUG  -rdynamic examples/CMakeFiles/curve_fitting_c.dir/curve_fitting.c.o  -o bin/curve_fitting_c -L/usr/lib/llvm-3.8/lib -Wl,-rpath,/usr/local/lib lib/libceres.a -lm /usr/local/lib/libglog.so /usr/local/lib/libgflags.a -lspqr -ltbb -ltbbmalloc -lcholmod -lccolamd -lcamd -lcolamd -lamd -llapack -lf77blas -latlas -lsuitesparseconfig -lrt -lcxsparse -llapack -lf77blas -latlas -lsuitesparseconfig -lrt -lcxsparse -lpthread -lstdc++ -lm && :
lib/libceres.a(gradient_checker.cc.o):在函数‘void Eigen::internal::parallelize_gemm<true, Eigen::internal::gemm_functor<double, long, Eigen::internal::general_matrix_matrix_product<long, double, 1, false, double, 1, false, 0>, Eigen::Matrix<double, -1, -1, 1, -1, -1>, Eigen::Matrix<double, -1, -1, 1, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::internal::gemm_blocking_space<0, double, double, -1, -1, -1, 1, false> >, long>(Eigen::internal::gemm_functor<double, long, Eigen::internal::general_matrix_matrix_product<long, double, 1, false, double, 1, false, 0>, Eigen::Matrix<double, -1, -1, 1, -1, -1>, Eigen::Matrix<double, -1, -1, 1, -1, -1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::internal::gemm_blocking_space<0, double, double, -1, -1, -1, 1, false> > const&, long, long, bool)’中:
/home/jason/Project/catkin_ws/src/ceres-solver/internal/ceres/gradient_checker.cc:(.text._ZN5Eigen8internal16parallelize_gemmILb1ENS0_12gemm_functorIdlNS0_29general_matrix_matrix_productIldLi1ELb0EdLi1ELb0ELi0EEENS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEES6_NS5_IdLin1ELin1ELi0ELin1ELin1EEENS0_19gemm_blocking_spaceILi0EddLin1ELin1ELin1ELi1ELb0EEEEElEEvRKT0_T1_SE_b[_ZN5Eigen8internal16parallelize_gemmILb1ENS0_12gemm_functorIdlNS0_29general_matrix_matrix_productIldLi1ELb0EdLi1ELb0ELi0EEENS_6MatrixIdLin1ELin1ELi1ELin1ELin1EEES6_NS5_IdLin1ELin1ELi0ELin1ELin1EEENS0_19gemm_blocking_spaceILi0EddLin1ELin1ELin1ELi1ELb0EEEEElEEvRKT0_T1_SE_b]+0x25):对‘__kmpc_global_thread_num’未定义的引用
 

这个__kmpc_global_thread_num是openmp中的。

把ceres_solver文件夹下的CMakeLists.txt中的

option(OPENMP "Enable threaded solving in Ceres (requires OpenMP)" ON)修改为OFF即可。

这是一个绕过问题的方法,实际上openmp已经装了,也检测到了,但不知道为什么总有问题。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值