摸索了很久,搜索了很多其他人写的,不知道为啥都不成功。其他人的方法也比较繁琐。就摸索适合自己的方法。只记录自己使用过的
官方Wiki
http://ceres-solver.org/installation.html#windows
介绍了Windows下使用vcpkg来安装,这是个跨平台的,
下载vcpkg后开始安装库
安装其他库像Ubuntu一样,输入命令就行了,自行搜索。
我用vcpkg安装的ceres用不起来就没有用。
所需要的库
suitesparse
这个要找Windows版本的,也可以不用。
https://github.com/jlblancoc/suitesparse-metis-for-windows
下载,vs编译
可参照Visual Studio使用cmakelist安装第三方库
这里有所需要的已经安装好的库,使用非Windows版本的,需要重新安装这个库,很麻烦。
vs打开后,会自动编译
打开编译选项,勾选shared-libs
然后ctrl+s保存,自动编译。注意选择
安装库:
Eigen3
https://eigen.tuxfamily.org/index.php?title=Main_Page
直接下载,解压就行了,也可以按照上面的方法安装成库的形式。
我是直接解压使用的。
ceres-solver
https://github.com/ceres-solver/ceres-solver
编译报错
解压,vs打开,自动编译,然后报错,为啥,缺absl。
解决错误
再次打开ceres-solver链接
点进去,将这两个分别下载下来,然后解压到ceres-solver -third-party中
再次使用vs打开,自动编译,无错误。
修改配置:
勾选使用suitespares
补充完整suiteparse的库路径,
就是上面已经安装好的suitepares
补充eigen
然后保存,自动编译,看下Suiteparse是否生效,如果没生效,则需要再次勾选勾选使用suitespares。
下面这些没找到,就需要重新输入路径,然后保存再编译。确认无误,点安装。
安装完成,如下,在out中
ceres helloword
创建vs工程
创建2个文件夹将安装的ceres库复制到工程目录下,也可以不复制。
配置vs
打开项目属性
包含目录中,添加ceres安装include和eigen解压的源文件目录
库目录,就将ceres的lib和bin添加进去
连接器–>输入
将ceres的helloword 例程或者其他的添加到项目中
然后编译,看看报错与否
逐一解决。
运行结果:
项目编译错误
下面是我编译中遇到的错误和解决
1.
2.
3.
这种找不到dll的,还需要将所需要的dll都复制到工程下。缺哪个就补哪个。这些dll都是上面安装过的,ceres和suiteparse。