不能使用ceres求解器,glog

时间:2017-06-27 21:29:13

标签: installation glog ceres-solver

我在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 *)'   我没有列出所有。但似乎根本找不到谷歌的东西。 希望你能帮我!!    它给了我一大堆问题。

1 个答案:

答案 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