Visual Studio 2013中的环境变量

12

我试图将项目包含设置为路径%OPENCV_246%\..\..\include

这会解析为路径F:\dev\opencv_246\build\include

然而,当设置项目包含时,该路径将无法解析,导致包含的头文件出现错误。

我已尝试使用%OPENCV_246%\..\..\include$(OPENCV_246)\..\..\include,但没有成功。

直接使用该路径可以修复我的包含问题,但我希望通过环境变量更好地管理路径。

在截图中,我添加了两个以供明确说明。如果有人能指出我缺少的步骤,我将不胜感激。

编辑:变量 OPENCV_246 包含值F:\dev\opencv_246\build\x86\vc11

screenshot


1
在项目输出目录中查找名为your_program_name.log的文件。它包含完整的构建日志,包括编译器命令行参数。您可以在其中看到宏如何展开,并了解问题所在。 - Alex F
1
使用$(OPENCV_246)是引用环境变量的正确方式。如果您不记录变量实际包含的内容,则无法诊断问题。 - Hans Passant
重新启动了我的计算机并使用完整路径进行构建,切换回似乎现在可用的OPENCV_246环境变量。我测试了添加一个新的环境变量OPENCV_TEST,它指向相同的路径,也可以正常工作。我不确定是什么原因导致了这种行为。 - LCartwright
2个回答

16

5
这听起来和我的问题相似,我的问题是让VS2013承认我对环境变量所做的更改(在我的情况下是QTDIR)。即使重新启动和关机,它仍然固执地坚持旧值!!(如果您进入编辑项目设置,点击“宏”按钮,并向下滚动列表以查找例如“ $(QTDIR)” ,则可以查看该值) 这里建议VS2010大量缓存值,但2013似乎更加热衷!
在一些查找旧路径的FindInFiles之后,似乎VS2013将环境变量缓存在您的.vcxproj.user文件中。我不知道它最初是如何进入那里的。
因此,我删除了条目,关闭了解决方案,在WordPad中再次检查文件,以确保未重新输入条目。然后我重新打开了解决方案,但旧值仍然出现在宏列表中!
关闭VS似乎解决了问题。现在它似乎有了正确的路径 - 尽管我肯定在第一次打开解决方案后检查过QTDIR,但在宏列表中没有看到它 - 也许我混淆了...
好的,现在所有的东西都似乎正常工作了,我的项目可以构建并链接到我的Qt库而不会出现任何问题 :-)
此外,vcxproj.user文件中的条目没有出现过。所以我仍然不知道它是如何进去的。也许我在以前的VS版本中做了一些事情导致它出现...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接