2

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

我与setx命令先设置变量,然后我试着将它移动到系统变量,但它并没有帮助。但是我没有尝试重新启动系统。

+3

作为SETX文件中指出,新的环境变量并不适用于现有的流程。 – 2012-08-02 06:15:57

回答

3

的MSBuild 扩大环境变量。 $(OGRE_HOME)应该工作得很好。

唯一的问题是,Visual Studio中缓存这些环境变量沉重的值,所以你所做出的更改不会立即反映出来。

一般有两种方法可以更改环境变量的值,而这两种出差错VS:

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

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

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

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

相关问题