2009-09-03 5 views
6

Qt는 .NET과 같이 프로그램에 대한 버전 정보를 유지하고 있습니까? 빌드 번호처럼? 또는 SVN 개정판에 쉽게 액세스 할 수 있습니까?Qt 자동 소프트웨어 버전?

답변

11

번호

하지만 당신은 당신이 당신이 원하는 것을 할 사용할 수 있습니다 임의의 명령의 결과에 따라 빌드 시스템에서 컴파일러 플래그를 설정할 수 있습니다 qmake를 사용하는 경우. 당신은 자식을 사용하고있는 경우

예를 들어, 당신이 당신의 .pro 파일 같은 것을 할 수 있습니다 :

REVISION = $$system(git rev-parse HEAD) 
DEFINES += APP_REVISION=$$REVISION 

당신에게 줄 것이다 있음을 APP_REVISION 매크로는 다음과 같이 사용할 수있는 프로그램을 컴파일 할 때 :

// stringize macro 
#define _STR(X) #X 
#define STR(X) _STR(X) 
QTextStream(cout) << "MyApp revision " STR(APP_REVISION) << endl; 
+0

Neat! 나는 이것으로 놀아야 할 것이다. NetBeans를 IDE로 사용하고 .pro 파일 자체를 빌드하므로 변경 사항을 덮어 쓰지 않는 방법을 알아 내야합니다. – mpen

+0

프로젝트 파일에서'DEFINES + = APP_REVISION = \\\ "$$ REVISION \\\"'를하면,'STR' 매크로로 소스 파일을 오염시킬 필요가 없습니다. –

+0

@ Dan : 이것은 사실입니다. 그러나 문제는 예제에 필요한 백 슬래시 수가 플랫폼에 따라 다르다는 것입니다 (심지어 쉘 특정 mingw32-make.exe는 환경에 따라 cmd 또는 sh를 통해 명령을 실행할 수 있습니다)). 나는 그것을 올바르게하는 것이 아주 어렵다고 생각합니다. – rohanpm

관련 문제