Eigen 程序无法从 Visual Studio 编译,但从命令行编译成功

Posted

技术标签:

【中文标题】Eigen 程序无法从 Visual Studio 编译,但从命令行编译成功【英文标题】:Eigen program failing to compile from Visual Studio, but compilation succeeds from the command-line 【发布时间】:2018-01-01 16:23:20 【问题描述】:

我在 Visual Studio 2015 中创建了一个新项目,其中仅包含一个使用 Eigen 的 C++ 文件“test.cpp”。我将 Eigen 安装在“C:\eigen”目录中。当我尝试从 Visual Studio 中构建解决方案时,它失败了,因为它找不到 Eigen 头文件,即使我将“C:\eigen”目录添加到项目的包含目录中。这是我得到的错误:

Cannot open include file: 'Eigen/Dense': No such file or directory  

但是,当我打开“VS2015 的开发人员命令提示符”时,转到包含“test.cpp”文件的目录,然后运行命令:

cl test.cpp -I "C:\eigen"

成功了。为什么在 Visual Studio 中编译失败,但在命令行中编译成功?

这是我将 Eigen 库添加到我的 Visual Studio 包含目录的方法:

【问题讨论】:

总是发布你得到的任何错误逐字in问题。 即使我将“C:\eigen”目录添加到项目的包含目录中。也许你没有正确添加它或您没有将其添加到所有配置中。 我用我得到的错误更新了我的问题,我的 VS 项目属性的屏幕截图显示了我如何添加包含目录。 听起来像 Eigen 的安装(我不熟悉)可能取决于您的环境中不存在的某些东西。我敢打赌重新启动您的 PC 会解决问题(或者只是重新启动 VS)。你试过这个吗? 我尝试重新启动,但没有帮助。 Eigen只是头文件的集合,所以真的不需要安装。 【参考方案1】:

问题是我为 x64 平台配置了项目,但正在为 x86 平台构建。在我为 x64 平台进行构建更改后,构建成功。

【讨论】:

以上是关于Eigen 程序无法从 Visual Studio 编译,但从命令行编译成功的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio c++ 项目中将 Eigen 外部库放在哪里?

Visual Studio 2012 中 Eigen 类型向量的自动向量化效果不佳

Visual Studio 2017 发行版中的 Eigen cwisemin/cwisemax 访问冲突

如何在 Visual Studio 2015 中添加库、头文件

无法从 Visual Studio 运行控制台应用程序:System.AccessViolationException

为啥在 Visual Studio 中构建失败,因为它无法从引用的程序集中解析命名空间?