在Win下Visual Studio配置Eigen

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 站:智能之欣
作者不定期分享技术、技巧!

<think>嗯,用户问的是如何在Visual Studio 2019中配置PCL 1.11.1的详细步骤。首先,我需要回忆一下之前看到的引用内容。引用1、3、4、5都提到了相关的配置步骤,尤其是引用4提供了详细的目录结构,可能包含安装和配置的具体方法。 首先,用户需要下载PCL 1.11.1,根据引用1和引用5,官网或者GitHub发布页面是下载源。然后安装过程中可能会遇到路径过长的问题,引用4提到需要手动处理环境变量,可能需要特别注意这部分。 接下来是安装依赖项,比如OpenNI2,引用4提到可能需要手动安装,这部分需要详细说明。然后配置VS2019的环境,包括包含目录、目录、附加依赖项和预处理器定义。引用2和引用3都提到了这些配置步骤,需要一步步指导用户如何设置项目属性。 测试部分,斯坦福兔子测试在引用2中被提到,可以作为验证安装是否成功的方法。同时,引用4可能提供了测试代码,需要确保代码正确无误,并且能够编译运行。 用户可能遇到的常见问题,比如环境变量配置错误或者路径问题,引用3和引用4都提到过,应该提醒用户检查这些部分。此外,确保所有依赖的版本匹配,避免兼容性问题,这也是引用5中提到的内容。 最后,生成相关问题需要考虑用户可能的后续疑问,比如环境变量设置、常见错误处理以及版本兼容性,这些都在引用内容中有涉及,应该整理成相关问题帮助用户进一步解决问题。</think>### Visual Studio 2019 配置 PCL 1.11.1 详细步骤 #### 1. **下载与安装** - **步骤1:下载PCL 1.11.1** 从PCL官方GitHub页面[^5]下载 `PCL-1.11.1-AllInOne-msvc2019-win64.exe`,确保选择与Visual Studio 2019兼容的版本。 - **步骤2:安装PCL** 运行安装程序,默认路径为 `C:\Program Files\PCL 1.11.1`。若遇到路径过长报错(`path too long`),选择忽略并**手动添加环境变量**[^4]: - 添加 `PCL_ROOT` 为安装路径(如 `C:\Program Files\PCL 1.11.1`)。 - 在系统变量 `PATH` 中添加: ``` %PCL_ROOT%\bin %PCL_ROOT%\3rdParty\FLANN\bin %PCL_ROOT%\3rdParty\VTK\bin ``` - **步骤3:安装OpenNI2** 手动安装 `OpenNI2`(位于 `PCL安装目录\3rdParty\OpenNI2\`),将其 `Tools` 文件夹加入系统 `PATH`。 --- #### 2. **配置Visual Studio 2019** - **步骤1:新建C++项目** 创建空项目,右键项目 → **属性** → 选择 `x64` 平台。 - **步骤2:设置包含目录** 在 **C/C++ → 常规 → 附加包含目录** 中添加: ``` %PCL_ROOT%\include\pcl-1.11 %PCL_ROOT%\3rdParty\Eigen\eigen3 %PCL_ROOT%\3rdParty\Boost\include\boost-1_74 %PCL_ROOT%\3rdParty\VTK\include\vtk-9.0 ``` - **步骤3:设置目录** 在 **链接器 → 常规 → 附加目录** 中添加: ``` %PCL_ROOT%\lib %PCL_ROOT%\3rdParty\Boost\lib %PCL_ROOT%\3rdParty\VTK\lib ``` - **步骤4:添加预处理器定义** 在 **C/C++ → 预处理器 → 预处理器定义** 中添加: ``` _CRT_SECURE_NO_WARNINGS _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS ``` - **步骤5:指定附加依赖项** 在 **链接器 → 输入 → 附加依赖项** 中添加所有 `.lib` 文件(如 `pcl_common_debug.lib`、`vtkChartsCore-9.0.lib` 等)[^2]。 --- #### 3. **测试配置** ```cpp #include <pcl/point_types.h> #include <pcl/io/pcd_io.h> int main() { pcl::PointCloud<pcl::PointXYZ> cloud; pcl::io::loadPCDFile("stanford_bunny.pcd", cloud); // 使用斯坦福兔子模型测试[^2] return 0; } ``` - 编译并运行,若未报错且能读取点云文件,则配置成功。 --- #### 4. **常见问题** - **环境变量未生效**:重启VS2019或系统。 - **链接错误**:检查目录路径是否包含所有依赖项的`.lib`文件。 - **版本冲突**:确保PCL 1.11.1与第三方(如Boost 1.74、VTK 9.0)版本匹配。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值