1

我正在使用 CPLEX 开发一个 C++ 项目(VS 2010)。

我在项目设置中包含了所需的 cplex 库,如下所示:

  • 在 C/C++ > 常规下添加了“其他包含目录”

  • 在链接器>常规下添加了“其他库目录”

  • 在链接器>输入下将.lib文件添加为“附加依赖项”

一切都编译得很好,但是我的问题是智能感知仍然报告错误(红色波浪下划线),例如#include 行中的“无法打开源文件”,以及使用 CPLEX 库中定义的变量类型时的“标识符未定义”。

与其他没有这种行为的项目唯一不同的是,这次我在设置包含路径时使用了windows环境变量,即库目录和包含目录的定义类似于:%CPLEX_STUDIO_DIR%\cplex\include

我已经这样设置了,这样我就可以在不同的机器上构建这个项目,而不会弄乱项目属性。由于 CPLEX 是单独安装的,因此使用相对路径来指定其他目录并不是一个真正的选项。

我想重复一下,该项目可以编译,只有智能感知错误困扰着我。

我知道我可以关闭智能感知错误报告,但如果有人对此有解决方法,我很想听听。

亲切的问候,

4

2 回答 2

3

Microsoft 已知此问题:

http://connect.microsoft.com/VisualStudio/feedback/details/779874/intellisense-cant-handle-using-environemt-variable-in-include-path

我知道避免它的唯一方法是手动输入完整的文字路径。该错误被标记为“延迟”,我认为这意味着微软认为它不够严重,无法很快修复。

于 2013-07-01T23:05:26.683 回答
3

解决方案是替换%CPLEX_STUDIO_DIR%\cplex\include$(CPLEX_STUDIO_DIR)\cplex\include. 这是 Visual Studio 用于其内置变量的语法,$(VCInstallDir)例如编译器。

(我意识到这是一个老问题,但它在搜索结果中排名很高,因此即使不是原始海报也可以帮助其他人。)

于 2015-01-29T11:19:19.650 回答