2

Ogre3D 응용 프로그램을 설정하려고하고 SDK의 홈 디렉토리에 "OGRE_HOME"시스템 변수를 설정했습니다. 그런 다음 프로젝트 속성에 $(OGRE_HOME) 시스템 변수를 사용하여 프로젝트 속성에 디렉토리 포함과 같은 프로젝트 속성을 설정했습니다. 그러나 응용 프로그램을 컴파일하려고 할 때 컴파일러에서 헤더 파일을 찾지 못해 SDK 속성을 프로젝트 속성에 "하드 코딩"해야했습니다.Visual Studio 2010에서 시스템 변수를 "압축 해제"하지 않는 이유는 무엇입니까?

변수를 먼저 setx 명령으로 설정 한 다음 시스템 변수로 이동하려고했지만 도움이되지 않았습니다. 그러나 나는 시스템을 재부팅하려고하지 않았다.

+3

새 환경 변수는 기존 프로세스에 적용되지 않습니다. –

답변

3

MSBuild 확장 환경 변수입니다. $(OGRE_HOME) 잘 작동합니다.

유일한 문제는 Visual Studio에서 이러한 환경 변수의 값을 많이 캐시하므로 변경 한 내용이 즉시 반영되지 않습니다.

이 환경 변수의 값을 변경하는 일반적인 방법에는 두 가지가 있으며, 이들 모두 VS로 잘못 :

  • 만 명령 행에서 실행되는 응용 프로그램에 영향을 명령 줄에서 값을 변경 . 탐색기를 통해 바로 가기에서 VS를 시작하기 때문에 새로운 값을 상속받지 않습니다.

  • 컴퓨터 속성을 통해 값을 변경하면 영구적 인 환경 변수가 변경되었음을 나타내는 a global message 브로드 캐스트가 정상적으로 작동합니다. 불행히도 VS는이 메시지를 듣지 않고 캐시를 업데이트하는 것처럼 보이지 않습니다.

그러나,이 환경 변수의 값을 새로 고치려면 VS 원인이됩니다, 문제를 해결해야 다시 시작 (또는 다시 로그 오프).

user macros은 환경 변수의 대안입니다. VS 2010은 속성 관리자를 통해이를 구현하는 매우 강력한 방법을 제공합니다. 설정으로 프로젝트 속성 시트를 작성한 다음 여러 프로젝트에 첨부하여 이러한 설정을 모두 상속 할 수 있습니다. VS 외부에서는 작동하지 않지만 모든 개발 작업을 수행하면 매우 편리 할 수 ​​있습니다.