应该很少人会遇到 但是遇到了会很难受
大概操作了一下以后(我是直接sudo nautilus进去删文件的)就到了最折磨的问题
catkin_make时如果安装了动态库的gflag(在cmake 时指定-DBUILD_SHARED_LIBS=ON) 它就会提示找不到-lgflag-static 但是当我安装了静态版本的gflag 在编译vins阶段没什么问题 在运行rosrun vins vins_node时 会提示 error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory 但是这个时候如果我再装一个动态的gflag 就还会是这样
就是又要静态又要动态 两者并存他又会说链了两个不知道选哪个
问题根源以及解决方法:
我这里是 先装了Ceres才重新装的gflag
Ceres在编译时没有链到动态的gflag 所以找不到lgflag-static是ceres报的错
在系统的gflags是动态库时 重新编译安装Ceres即可
发现是因为查到报错的global_fusion的cmake文件里根本没有要求gflag的静态库 反倒是要求了Ceres