我在 ubuntu 中安装 ceres 并使用http://ceres-solver.org/installation.html Linux 部分中的所有命令行sudo apt-get install libgoogle-glog-dev 一直进行安装似乎我已经安装ceres求解器和它的依赖没有问题。但是当我尝试运行测试文件 bin/simple_bundle_adjuster ../ceres-solver-1.12.0/data/problem-16-22106-pre.txt 它显示无法打开文件 ../ceres-solver-1.9.0 /data/problem-16-22106-pre.tx 然后我尝试在教程中编译 helloworld 使用命令 g++ -I/usr/include/eigen3 helloworld.cpp -o helloworld 它给了我一堆问题。
未定义的引用google::InitGoogleLogging(char const*)'
helloworld.cpp:(.text+0x104): undefined reference to
ceres::Problem::Problem()' helloworld.cpp:(.text+0x155): undefined reference to `ceres::Problem::AddResidualBlock(ceres::CostFunction*, ceres::LossFunction*, double*)' I没有一一列出。但似乎它根本找不到关于谷歌的东西。希望你能帮我!!它给了我一大堆问题。
问问题
1032 次
1 回答
1
听起来你没有链接到图书馆;这将导致引用未定义。如果您正在调用链接器(G++ 可以是链接器),则添加 -lglog 添加末尾,然后应该将其链接到 glog。
同样,您还应该链接到 ceres。
这是我需要链接以使用使用 Ceres 的库的内容的片段。在 CMake 中。我建议您从底部/末尾开始并在顶部添加内容进行修复,您可能需要在前面加上 -l 表示您需要链接它们。我建议使用 cmake,这样您就可以简单地将这个列表粘贴到 target_link_libraries(myexecutable listhere ) 并删除不必要/未使用的库;
umfpack
cxsparse
stlplus
glog
gomp
ccolamd
btf
klu
cholmod
lapack
blas
camd
amd
pthread
ceres
于 2017-07-26T09:14:55.620 回答