Intellisense错误/包含带有环境变量的其他库

时间:2012-10-25 10:05:34

标签: visual-studio-2010 environment-variables intellisense

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

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

  • 在C / C ++>下添加了“其他包含目录”。一般

  • 在链接器>下添加了“附加库目录”。一般

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

所有内容编译都很好,但我的问题是,当使用CPLEX库中定义的变量类型时,intellisense仍会报告错误(红色波浪线下划线),例如#include行中的“无法打开源文件”,以及“未定义标识符”。

与没有此行为的其他项目的唯一区别是,这次我在设置包含路径时使用了Windows环境变量,即库目录和包含目录的定义类似于:%CPLEX_STUDIO_DIR%\cplex\include < / p>

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

我想重复一下这个项目编译,这只是困扰我的intellisense错误。

我知道我可以关闭intellisense错误报告,但是如果某人有解决方法,我很乐意听到它。

亲切的问候,

2 个答案:

答案 0 :(得分:3)

Microsoft已知此问题:

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

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

答案 1 :(得分:3)

解决方案是将%CPLEX_STUDIO_DIR%\cplex\include替换为$(CPLEX_STUDIO_DIR)\cplex\include。这是Visual Studio用于其内置变量(如$(VCInstallDir))的语法,但它也适用于环境变量(只要它们与内置变量的名称不同)并且可以识别通过intellisense以及编译器。

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