ceres带lapack,带suitesparse的安装

之前编译ceres过一次,只是编译的选项里面没有lapack和suitesparse库,因为这俩库没装好,所以之前不用这俩库是可以编译成功的,另外也是可以正常使用的;

但是,在编译激光slam之Cartographer的时候,发现ceres老是报错,就是涉及到lapack和suitesparse的问题,查了些资料,尝试了几次,终于搞定了;

第一步:安装apt install libblas-dev liblapack-dev libsuitesparse-dev libopenblas-dev;

第二步:编译openblas源码,安装完之后(默认安装在opt文件夹下面),按目录名称将其拷贝到、/usr/local/lib    include   cmake  pkconfig   等几个目录;不出意外的话,现在再用cmake配置ceres的话,lapack和suitesparse都能发现了,不过继续编译的话,仍然会出冲突的问题;

第三步:apt-get remove libopenblas-base,我们安装libopenblas-dev包含了base,但是base里面的liblapack.so.3有冲突;原因:电脑里面同时安装有atlas和openblas,我们删掉一个就好了

现在再进行编译应该就正常了,编译选项可以把需要的都选上,没问题了。

liblapack-dev不需要编译源码,按https://blog.csdn.net/Dorwin666/article/details/94906728编译了源码,结果只有a文件,没有动态库;

另外,cmake版本是个问题,通过apt-get install 的cmake版本中有些find***.cmake有问题,所以就升到最新版本了,没有编译源码,直接下载的二进制文件;

--------------------------------------------------------------------------------------

编译Cartographer的时候,会要求安装lua,进而会要求安装readline,直接apt-get install libreadline6-dev就好,不需要源码安装;

你可能感兴趣的:(slam,ceres,Cartographer)