2013-08-05 14 views
2

큰 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 FormatProgram 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>을 변경하는 스크립트를 작성하면됩니다.

답변

0

2 개월 전에 QTBUG-32885을 제출했지만 아직 수정되지 않았습니다.

이제 티켓에 설명 된대로 qmake를 패치 할 수 있습니다.