버전 정보 넣기

QT 2016.09.26 17:00

<QT 4.8>


QCoreApplication 클래스에는 applicationVersion() 라는 static 메서드가 있습니다.

QString을 반환하는데요.. setApplicationVersion(QString) 을 해주지 않으면

빈 문자열을 반환합니다.


버전 정보를 직접 넣어줘야 한다는 이야기 인데요..

버전 정보를 *.h나 *.cpp에 넣으면 버전만 수정할 때 리비전이 보기 싫게 되는 경우가 생깁니다.


이럴 때를 위해서 코드에서 수정하기보다는..


*.pro 파일에서 DEFINES 키워드를 사용해서 추가하는 것을 권장합니다.

DEFINES 에 추가할 때는 그냥 따옴표를 붙여서는 안됩니다.

그냥 해보니 숫자로 인식하더군요..


ex) DEFINES += APP_VERSION="0.0.1"


위의 경우 아래와 같이 10진수에 소수점 표기가 너무 많다고 빌드 에러가 날겁니다.

-1: error: too many decimal points in number


이를 해결하기 위해서는 아래와 같이 하시면 됩니다.


ex) DEFINES += APP_VERSION=\\\"0.0.1\\\"


*.pro 파일에 대한 키워드 도움말을 보시면 VERSION 이라는 키워드가 있는데요,

이 키워드는 윈도우에서 파일 등록 정보를 볼 때 나타나는 버전 정보를 나타내는 문자열입니다.

결국 아래처럼 수정이 필요 했습니다.


ex) VERSION = 1.0.0 # 이 키워드는 1.0.0 을 그대로 인식하고 있습니다.

DEFINES += APP_VERSION=\\\"$$VERSION\\\" # \\\" 를 붙이지 않으면 역시 숫자로 인식


이후 main.cpp 의 main() 에 QCoreApplication::setApplicationVersion(APP_VERSION); 을 추가하면

QCoreApplication::applicationVersion() 으로 *.pro에 입력한 버전 정보를 가져올 수 있습니다.


VERSION 을 추가한 효과로 아래처럼 윈도우 등록 정보에서 버전 정보가 나타나게 됩니다.


덧붙여서 가능하면 qmake 클린 빌드를 해주세요.

*.pro 의 갱신이 제대로 안되는 경우가 발견이 되었습니다.


참고:

http://www.openguru.com/2009/11/qt-best-way-to-set-application-version.html



저작자 표시
신고

'QT' 카테고리의 다른 글

버전 정보 넣기  (0) 2016.09.26
undefined reference to 'vtable for...'  (0) 2016.05.19
반투명 그릴 때 배경 잔상 문제  (0) 2016.05.11
libwinpthread 가 계속 동적 빌드만 될 때  (0) 2016.04.28
디버깅 매크로  (0) 2016.04.19
QByteArray 의 reserve() vs resize()  (0) 2016.03.18
Posted by 기타2번


티스토리 툴바