큰 Visual Studio 2012 솔루션 안에 약 15 개의 프로젝트가 있습니다. 나는이 프로젝트 중 몇 가지에 대해 디버깅 심볼 생성을 비활성화하고 싶습니다. 나머지는 디버깅을 허용해야합니다. 이 모든 것은 디버그 구성과 관련이 있습니다.Visual Studio 2012 용 qmake가있는 -Zi 플래그 제거
나는 이런 일이 발생하도록 끔찍한 시간을 보내고 있습니다.
# Get rid of debug information
QMAKE_CFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS_DEBUG -= -Zi
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zi
을하지만 솔루션 파일을로드 할 때, Property Pages
은 ->C/C++
->All Options
->Debug Information Format
는 Program Database (/Zi)
옵션은 여전히 표시됩니다 내 프로 파일 닫아의 유일한 언급은 다음과 같습니다. 또한 mkspecs 및 qmake.conf에서 Zi에 대한 언급을 삭제했습니다 (위의 줄은 제거해야 함).
그래서 qmake 소스 코드 (모든 파일은 qmake/generators/win32 아래에 있음)를 열었습니다. 디버그 기호를 끄는 방법이없는 것 같습니다. -Zi
이없는 경우에만 표시되지 않도록해야합니다.
프로젝트를 수동으로 <inherit from parent or project defaults>
으로 설정하면 Zi
옵션이 다시 표시됩니다. 그게 내가 상속 받고 있다고 믿게 만들지 만 ... 어디에서?!
나는 내 마음을 잃고 있습니다. 도와주세요.
편집 1 :
분명히, 상속 된 속성은 the Microsoft.Cpp.* property sheets에서 온다. 해당 링크의 지침에 따라 프로젝트에서 상속 된 등록 정보 시트를 찾고 수정하여 -Zi
플래그를 없앨 수 있습니다.
Debug Information Format
에 대해 None
을 강제 실행하는 플래그를 사용하는 것이 좋습니다. 누구든지 그게 뭔지 알아?
편집 2 :
세 번째 아이디어 : 어딘가에 내가 제어 할 수 있습니다에 상속 된 속성 시트의 기본 위치를 변경하려고합니다.
Windows 환경 변수 $ (UserRootDir)는 상속 된 등록 정보 시트의 위치를 지정합니다. MSBUILD allegedly을 사용하면 /property
명령 줄 인수를 사용하여이 변수의 값을 변경할 수 있습니다. 불행히도, 나는 인수를 받아들이게하는 qmake를 얻는 방법을 이해할 수 없다. qmake MAKEFILE_GENERATOR 빌더에 입력 인수를 설정할 수있는 방법이 있습니까?
이 퀘스트는 야생 거위 떼처럼 느껴지기 시작했습니다. CMD에 sed 기능이 있다면 vcxproj 파일 안에 <DebugInformationFormat>
을 변경하는 스크립트를 작성하면됩니다.