win10+vs2015配置suitesparse1.3.0

配置suitesparse是配置g2o的前提,我参考了这篇文章进行配置:
https://blog.csdn.net/xiamentingtao/article/details/50100549
但是这里边有点小错误,我按照里面的步骤再叙述一遍,小错误我会用***粗斜体***指出。
1、下载camke,我用的是cmake3.10.1
2、下载suitesparse1.3.0链接:https://pan.baidu.com/s/1HY2svJKr5dWJHIVmCTHlOQ 提取码:2m15
下载Eigen,直接解压,如下:
win10+vs2015配置suitesparse1.3.0_第1张图片
3、将下载下来的安装包解压,我是解压后放在这个位置了,这里暂称E:\g2o\suitesparse-metis-for-windows-1.3.0这个路径为SP_ROOT,并且在SP_ROOT里面新建一个build文件夹备用
win10+vs2015配置suitesparse1.3.0_第2张图片
4、打开 SP_ROOT/metis/CMakeLists.txt,在行project(METIS)后面加上命令 cmake_policy(SET CMP0022 NEW)
win10+vs2015配置suitesparse1.3.0_第3张图片
5、运行 CMake (cmake-gui),
• 设置"Sourcecode"为SP_ROOT
• 设置"Build" 路径为SP_ROOT/build
• 按 “Configure”。
• 然后你会发现有很多红的地方,不要管,再"Configure",其中,要注意,HAVE_COMPLEX 不要勾选(这是参考博客的作者说的)
• 按 “Generate” ,成功生成,如下:
win10+vs2015配置suitesparse1.3.0_第4张图片

6、点击cmake里的Open project,由vs2015打开工程
win10+vs2015配置suitesparse1.3.0_第5张图片
设置成Debug x64和release x64模式分别生成工程,生成步骤:(1)右击ALL_BUILD->设为启动项->生成 (2)右击INSTALL->设为启动项->生成

7、配置Eigen和Suitesparse
新建一个工程,项目->属性中配置,
Eigen我在好久之前就已经配置过了,具体步骤忘了,读者可以自行去网上找,很简单的,没难度。
重点是配置SuiteSparse,步骤如下:
(1)C/C+±> 常规->附加包含目录
win10+vs2015配置suitesparse1.3.0_第6张图片
(2)链接器->常规->附加库目录
这里的目录跟参考博客作者的叙述略有不同
win10+vs2015配置suitesparse1.3.0_第7张图片
(3)添加链接器->输入->附加依赖项

E:\g2o\suitesparse-metis-for-windows-1.3.0\build\lib\Debug
E:\g2o\suitesparse-metis-for-windows-1.3.0\build\install\lib64
E:\g2o\suitesparse-metis-for-windows-1.3.0\build\install\lib64\lapack_blas_windows
里面debug模式的静态库(即以d.lib结尾)的文件名都提取出来,由于我这里配置的是debug模式,所以只提取了debug模式的静态库文件名
win10+vs2015配置suitesparse1.3.0_第8张图片
libamdd.lib
libbtfd.lib
libcamdd.lib
libccolamdd.lib
libcholmodd.lib
libcolamdd.lib
libcxsparsed.lib
libklud.lib
libldld.lib
libspqrd.lib
libumfpackd.lib
metisd.lib
suitesparseconfigd.lib
libamdd.lib
libbtfd.lib
libcamdd.lib
libccolamdd.lib
libcholmodd.lib
libcolamdd.lib
libcxsparsed.lib
libklud.lib
libldld.lib
libspqrd.lib
libumfpackd.lib
metisd.lib
suitesparseconfigd.lib
libblas.lib
liblapack.lib
(4)在链接器->输入->附加依赖项里输入上述静态库名称
(5)最后在生成的debug文件下加入如下dll,
libblas.dll
libgcc_s_dw2-1.dll
libgfortran-3.dll
liblapack.dll
libquadmath-0.dll
可以在SP_ROOT\build\install\lib\lapack_blas_windows中找到,复制即可。
win10+vs2015配置suitesparse1.3.0_第9张图片
(6)在工程里运行如下测试代码:

#include 
#include "Eigen/Eigen"
#include "Eigen/SPQRSupport"
using namespace Eigen ;
int main ( ) {
	
	SparseMatrix < double > A ( 4 , 4 ) ;
	std :: vector < Triplet < double > > triplets ;

	// 初始化非零元素
	int r [ 3 ] = { 0 , 1 , 2 } ;
	int c [ 3 ] = { 1 , 2 , 2 } ;
	double val [ 3 ] = { 6.1 , 7.2 , 8.3 } ;
	for ( int i = 0 ; i < 3 ; ++ i )
		triplets . push_back( Triplet < double >(r [ i ] , c [ i ] , val [ i ]) ) ;

	// 初始化稀疏矩阵
	A . setFromTriplets ( triplets . begin ( ) , triplets . end ( ) ) ;
	std :: cout << "A = \n" << A << std :: endl ;

	// 一个QR分解的实例
	SPQR < SparseMatrix < double > > qr ;
	// 计算分解
	qr . compute ( A ) ;
	// 求一个A x = b
	Vector4d b ( 1 , 2 , 3 , 4 ) ;
	Vector4d x = qr . solve ( b ) ;
	std :: cout << "x = \n" << x ;
	std :: cout << "A x = \n" << A * x ;

	return 0 ;
}

结果如下
win10+vs2015配置suitesparse1.3.0_第10张图片

你可能感兴趣的:(配置第三方库和软件)