2010-12-06 4 views
6

나는 자동으로 qmake를 통해 Translation_de.qm로 컴파일 독일어 번역과 Qt는 프로젝트, Translation_de.ts를 가지고 :Qmake에 자동 생성 리소스 파일을 지정하는 방법은 무엇입니까?

생성 된 Translation_de.qm 다음 리소스로 최종 응용 프로그램에 컴파일
TRANSLATIONS += Translation_de.ts 
... 
QMAKE_EXTRA_COMPILERS += lrelease 
lrelease.input   = TRANSLATIONS 
lrelease.output  = ${QMAKE_FILE_BASE}.qm 
lrelease.commands  = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_BASE}.qm 
lrelease.CONFIG  += no_link target_predeps 

:

RESOURCES += Resources.qrc 

어디 Resources.qrc은 다음과 같습니다

<RCC> 
    <qresource> 
    ... 
    <file>Translation_de.qm</file> 
    </qresource> 
</RCC> 

을 내가 잘못 여기서 뭐하는 거지

RCC: Error in 'Resources.qrc': Cannot find file 'Translation_de.qm' 

이의 LL 신선한 체크 아웃에 qmake에 매우 첫 번째 호출은 다음과 같은 성가신 경고를 발생하는 것을 제외하고 잘 작동? Translation_de.qm과 같은 자동 생성 리소스 파일을 올바르게 지정하려면 어떻게해야합니까?

답변

6

qmake 단계에서 생성 된 파일을 예 : system(lrelease...). 다른 규칙도 그대로 두어 입력 파일이 변경 될 때 qmake를 재실행 할 필요가 없습니다.

2

내가 당신이 원하는 것은 내가가 '정상'컴파일 단계가 실행되기 전에 실행되는 것을 보장 target_predeps을 알고 lrelease.CONFIG 지금까지

단지 "ignore_no_exist"이라고 생각 . 따라서 실제로 경고를 제거하는 경우에만 위 플래그를 추가하십시오. qmake 호출로 작성된 makefile을 실행하면 qm 작성이 작동합니다. 당신의 QM 파일을 추가하는 시도를 생성하지 않는 경우

:

PRE_TARGETDEPS += compiler_lrelease_make_all 

체크 아웃 당신을 도울 수있는 더 많은 옵션이 link.

+0

'qmake'는 찾을 수없는 파일에 대한 의존성을 생성하지 않습니다. 생성 된 Makefile은 병렬 빌드를 실패합니다. –

관련 문제