我在ubuntu中安装ceres并使用http://ceres-solver.org/installation.html Linux部分中的所有命令行
sudo apt-get install libgoogle-glog-dev
一直到
make install
似乎我已经安装了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
然后我尝试在tutorial use命令中编译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):未定义引用`ceres :: Problem :: AddResidualBlock(ceres :: CostFunction *,ceres :: LossFunction *,double *)'
我没有列出所有。但似乎根本找不到谷歌的东西。
希望你能帮我!!
它给了我一大堆问题。
答案 0 :(得分:0)
听起来你没有链接到图书馆;这会导致引用未定义。如果你正在调用链接器(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