在Win下Visual Studio配置Eigen

本文详述了如何在Windows环境下,利用Visual Studio配置并使用矩阵运算库Eigen。步骤包括下载Eigen源码,创建并组织项目文件结构,设置项目属性以添加Eigen路径,以及在多个项目间共享Eigen库的方法。通过编写并运行测试代码验证配置成功。
摘要由CSDN通过智能技术生成

在Win下Visual Studio配置Eigen

最近在使用Visual Studio时想使用一下著名的矩阵运算库:Eigen,摸索了一下如何在Visual Studio中配置。

1 下载Eigen源码

直接到Eigen官网Eigen,这里我选择3.3.8版本

image-20211129123551193

2 在VS中创建一个空项目

这里先创建一个空项目

image-20211129123804527

这里演示选择空模板

image-20211129123855337

这里注意,一个解决方案中可以包含多个项目,如果勾选了将解决方案和项目放在同一目录,在这个解决方案里再添加项目,项目的文件夹就也在Desktop目录下,不便于管理。不勾选的话相当于在Desktop/下创建一个Solution文件夹,存放解决方案,Solution/中同时又创建了Project1文件夹,存放Project1的项目文件。在添加项目时就会在Solution/目录下,而不是Desktop/。(这里以下图在Desktop目录下的情况说明问题)

image-20211129131401163

创建完成后会进入VS中,VS中解决资源管理器默认是展示头文件、源文件这些,如下图。

image-20211129132214984

但我们在做项目时,往往按照src、include、config、deps这些文件夹去管理工程文件,因此需要做一些修改。

首先在项目目录下创建src、include、deps、config等文件夹,src存放源文件、include存放头文件、deps用于放置外部库,这里我们的Eigen就解压存放到在这里,最终创建好的目录如下(为了展示文件结构用vs code打开的,这里只要注意eigen的所有文件在deps/eigen目录下,有时候解压软件会创建两层文件夹):

image-20211129132142924

打开显示所有文件,就可以看到每个工程文件夹了

image-20211129125126088

3 设置项目属性,添加Eigen

直接在项目上右键–>属性,然后在属性页上选择配置–>所有配置平台–>所有平台,我这里项目需要还改了解决方案平台为x64、C17标准。

image-20211129132339927

现在在属性配置中有常规、高级等标签,而我们需要在C/C++标签下进行配置,如下图

image-20211129125822684

那么怎么调出这个标签呢?具体方法如下:

在src中随便添加一个C++文件,这里命名为test_eigen.cpp,然后再右键项目属性,就会出现C/C++标签了。

image-20211129132557190 image-20211129125755925

进入标签页后,可以看到第一个是附加包含目录,这里将我们的Eigen目录添加到这里就可以了。为了便于项目合作,这里应该是相对路径。如下,这里把include也加入进去。

image-20211129130427728

4 测试

完成上述步骤后,在刚刚创建的test_eigen.cpp中编写一段代码进行测试:

test_eigen.cpp

#include <iostream>
#include <Eigen\Dense>
 
using namespace std;
 
typedef Eigen::Matrix<int, 3, 3> Matrix3i;
 
int main()
{
	/*
	Matrix的初始化方法
	Eigen::Matrix<int, 3, 3> 
	int 代表Matrix的数据类型,3,3 分别代表 rows, cols
	Matrix3i m1;
	m1(0,0) = 1
	m1(0,1) = 2
	m1(0,2) = 3
	...
	或者用 m1 << 1,2,3 ...
	*/
 
	Matrix3i m1;
	m1 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
	cout << "m1 = \n" << m1 << endl;
 
	Matrix3i m2;
	m2 << 1, 0, 0, 0, 1, 0, 0, 0, 1;
	cout << "m2 = \n" << m2 << endl;
 
	cout << "m1 * m2 = \n" << (m1 * m2) << endl;
 
	return 0;
}

运行一下,可以正常输出,表明没有问题。

image-20211129130913902

5 多个项目情况

如果解决方案中存在多个项目A、B、C等,假设eigen源文件在A项目的deps/eigen中,那B、C项目如何配置呢?

这里我们再新建一个项目:右键解决方案,添加–>新建项目,这里选择默认空项目,命名为Project2

image-20211129132638800

创建后如下:

image-20211129133035986

同样,在Project文件夹中也创建src、include等文件夹,但这里我们不创建deps了,我们想使用Project1/deps中的Eigen。

首先,右键Project2–>属性,进入到C/C++标签页下,如果属性页中没有C/C++,那么同样在Project2/src创建一个.cpp文件即可。

然后添加如下内容:

image-20211129133347442

这里$(ProjectDir)表示Project2这个文件夹,即当前项目的项目文件夹,如果还有一个Project3,那么这个就是Project3对应的文件夹。

测试

在Project/src中添加一个测试.cpp文件,同时右键Project2,设置为启动项

image-20211129133657169

test_eigen.cpp

#include <iostream>
#include <Eigen\Dense>

using namespace std;

typedef Eigen::Matrix<int, 3, 3> Matrix3i;

int main()
{
	/*
	Matrix的初始化方法
	Eigen::Matrix<int, 3, 3>
	int 代表Matrix的数据类型,3,3 分别代表 rows, cols
	Matrix3i m1;
	m1(0,0) = 1
	m1(0,1) = 2
	m1(0,2) = 3
	...
	或者用 m1 << 1,2,3 ...
	*/
	cout << "**********Project2********" << endl;
	Matrix3i m1;
	m1 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
	cout << "m1 = \n" << m1 << endl;

	Matrix3i m2;
	m2 << 1, 0, 0, 0, 1, 0, 0, 0, 1;
	cout << "m2 = \n" << m2 << endl;

	cout << "m1 * m2 = \n" << (m1 * m2) << endl;

	return 0;
}

这里为了与Project1区别,会先输出一行Project2

运行一下,输出:

image-20211129133823618

证明没有问题。

6 总结

本文详细介绍了如何在VS中添加外部库Eigen的过程,对于 其他库,方法应该也是类似的。

欢迎关注作者个人网站
以及GzH: 智能之欣
B乎、B 站:智能之欣
作者不定期分享技术、技巧!

Visual Studio配置Eigen的步骤如下: 1. 首先,下载Eigen的压缩包文件。你可以从Eigen的官方网站或者其他可靠的资源网站下载。确保下载的版本与你的项目兼容。 2. 解压缩Eigen的压缩包文件。你可以选择将解压后的文件夹放在你的项目文件夹下,或者放在一个全局位置,以便多个项目共享。 3. 打开Visual Studio,打开你的项目。 4. 在解决方案资源管理器,右键点击你的项目,选择“属性”。 5. 在属性窗口,选择“VC++目录”选项卡。 6. 在“包含目录”一栏,添加Eigen的头文件路径。点击右侧的编辑按钮,然后点击“新建文件夹”按钮,选择Eigen的头文件所在的文件夹。 7. 在“目录”一栏,添加Eigen文件路径。点击右侧的编辑按钮,然后点击“新建文件夹”按钮,选择Eigen文件所在的文件夹。 8. 在“链接器”选项卡下的“输入”一栏,添加Eigen文件。点击右侧的编辑按钮,在“附加依赖项”一栏添加Eigen文件名。 9. 点击“应用”按钮,然后点击“确定”按钮。 现在,你的Visual Studio项目已经配置好了Eigen。你可以在你的代码包含Eigen的头文件,并使用Eigen提供的功能了。请确保在使用Eigen的任何代码之前,包含了正确的头文件。 请注意,以上步骤是基于Eigen的最新版本3.4.0进行的。如果你使用的是其他版本的Eigen,可能会有一些细微的差异。 #### 引用[.reference_title] - *1* [在 Visual Studio 配置 Eigen](https://blog.csdn.net/u014556429/article/details/124236261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Eigen学习笔记(一)之vs2010配置Eigen](https://blog.csdn.net/qq_32544849/article/details/87922341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [VS配置Eigen](https://blog.csdn.net/m0_67357141/article/details/125254847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值