2010-06-24 4 views
6

우리는 git 복제본으로 구축하고있는 Qt의 상용 라이센스를 사용하여 Windows 및 Mac 응용 프로그램을 구축하고 있습니다.Qt의 소스 코드 빌드를 다른 위치로 복사하는 방법이 있습니까?

우리는 잠재적으로 여러 빌드 에이전트와 함께 Hudson을 사용하여 빌드 설정을 얻었습니다. Windows에 대해 최소한 한 번 빌드 한 다음 각 에이전트에 Qt 빌드를 배포합니다 (Qt를 빌드하지 말고 각 에이전트). 그러나 빌드 된 Qt는 이동하거나 복사하는 것을 좋아하지 않습니다.

이 방법이 있습니까? 우리가 가진 한 가지 생각은 Qt를 빌드하여 바이너리 배포판과 닮은 설정이 있었는지 여부였습니다. 그러나이 방법은 볼 수 없습니다.

+0

무슨 오류가보고 있습니까? – jlarcombe

+0

초기 오류는 다음과 같습니다. QMAKESPEC이 설정되지 않았으므로 구성을 추론 할 수 없습니다. 나는 여러 가지 다른 오류를 얻었지만,이 모든 것들이이 오류에서 비롯된 것으로 생각됩니다. –

+0

빌드 경로는 실제로 QtCore 라이브러리에 내장되어 있습니다. 빌드를 옮기려고하면 많은 오류가 발생합니다. 그 중 일부는 아주 미묘합니다. 예를 들어, QLibraryInfo :: LibraryLocation에 대해 리턴 된 값이 틀립니다. – rohanpm

답변

5

출시 된 Qt는 바이너리 작업이되는 방법 :

Qt는 매우 긴 빌드 경로에 내장되어 있습니다 (예 : 창에, c:\Qt\______________padding__________for_________packaging________________). 그 다음은 설치 프로그램으로 꾸려 설치 프로그램은 검색 사용자 정의 플러그인이 포함되어 있습니다. Qt 바이너리를 패치하고 긴 빌드 경로를 사용자의 설치 경로로 바꾸십시오. 바이너리의 크기는 변경할 수 없으므로 사용자의 설치 경로는 항상 빌드 경로보다 짧아야합니다. ..

Mac 및 Linux에서 rpaths도 비슷하게 비슷합니다. rpath는 $ORIGIN을 사용하여 상대 경로로 지정하거나 abo와 같이 바이너리로 패치합니다 ve 경로. 사용 사례에 대한 바이너리 패키지가 상당히 모 놀리이며,이 논리는 쉽게 추출 있지 않은지 확인

스크립트는 ...

, 난 당신이 단순히 예측 가능한 경로에있는 모든 시간을 Qt를 구축하는 것이 좋습니다 것입니다. 항상 c:\Qt_test에 Qt를 빌드하고 각 에이전트에서 c:\Qt_test으로 배포하십시오. 단점은 허드슨이 자동으로이 문제를 해결하는 데 그리 좋지 않을 수 있으므로 스크립트를 써야한다는 것입니다.

+0

그게 효과가 있습니다 - 설명과 제안에 감사드립니다. –

관련 문제