gpt4 book ai didi

c++ - 为什么 Visual Studio 2010 没有 "unpack"系统变量?

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:59 25 4
gpt4 key购买 nike

我试图设置一个 Ogre3D 应用程序,并将“OGRE_HOME”系统变量设置为 SDK 的主目录。然后我使用 $(OGRE_HOME) 系统变量设置项目属性,例如在项目属性中包含目录。但是当我尝试编译应用程序时,编译器没有找到头文件,所以我不得不将 SDK 路径“硬编码”到项目属性中。

我首先使用 setx 命令设置变量,然后尝试将其移动到系统变量,但没有帮助。但是我没有尝试重启系统。

最佳答案

MSBuild 确实扩展了环境变量。 $(OGRE_HOME) 应该可以正常工作。

唯一的问题是 Visual Studio 大量缓存这些环境变量的值,因此您所做的更改不会立即反射(reflect)出来。

一般有两种方法可以改变环境变量的值,而这两种方法在 VS 中都会出错:

  • 从命令行更改值只会影响从命令行启动的应用程序。由于您可能通过资源管理器从快捷方式启动 VS,因此它不会继承新值。

  • 通过计算机属性更改值应该正常工作,因为该对话框广播 a global message指示持久环境变量已更改。不幸的是,VS 似乎没有听取这些消息并更新其缓存。

但是,重新启动(或注销并重新打开)应该可以解决问题,因为这会导致 VS 刷新环境变量的值。

还值得注意的是 user macros是环境变量的替代品。 VS 2010 提供了一种非常强大的方法来通过属性管理器实现这些。您可以使用您的设置创建一个项目属性表,然后可以将其附加到多个项目,以便它们都继承这些设置。它在 VS 之外不起作用,但如果您在那里完成所有开发工作,它会非常方便。

关于c++ - 为什么 Visual Studio 2010 没有 "unpack"系统变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com