2013-01-08 2 views
0

Qt의 정적 버전에 연결하여 Qt 응용 프로그램을 배포하려고합니다.Mac에서 Qt의 정적 버전에 응용 프로그램 연결

나는이 guide을 따랐다. Qt를 다운로드하여 정적으로 컴파일했습니다. 문제는 Qt의 정적 버전에 응용 프로그램을 연결하려고 할 때입니다. 응용 프로그램 후

컴파일하고 내가 확인 링크 된 다른 어떤 라이브러리 응용 프로그램이 연결되어 있습니다 : 내 응용 프로그램은 여전히 ​​동적 Qt는 버전 내가 그것을 어떻게 해결할 수에 링크 된 이유는

otool -L QtIntro.app/Contents/MacOs/plugandpaint 

//output from command: 

QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.3) 
QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.3) 
QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.3) 
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0) 
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1094.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) 

?

+1

당신은 이것을 지불하기로되어 있습니다. 당신은 이미 그것을 알고 있습니다, 그렇습니까? – user1849534

+1

절대적으로 열려 있지 않은 오픈 소스는 오픈 소스를 의미합니다. Qt를 무료로 사용하려면 동적으로 링크해야하고 상업용 라이센스를 구매해야하는 정적 컴파일을 원하면 라이센스를 구입할 때이 작업을 수행하는 방법에 대한 지침을 받아야합니다. 소프트웨어의 역사에서 opensource는 "자유"와 같지 않았습니다. 사용중인 소프트웨어의 라이센스를 읽고 이해해야합니다. – user1849534

+0

user1849534 : 글쎄, 라이센스가 호환되면 (무료) 정적으로 연결할 수 있습니다. 즉, 응용 프로그램 번들과 함께 dylib를 번들로 묶는 것이 꽤 일반적입니다 (정적 링크 이상의 것). 다운로드가 더 커질지라도 응용 프로그램 자체도 포함됩니다. –

답변

0

이 경우 99 %의 경우에는 해당 경로에 동적 라이브러리가 여전히 있기 때문입니다. 설명서에 명시된 바와 같이 :

링커는 항상 정적 인 동적 이상을 선택합니다.

*.framework 하위 디렉토리를 어딘가에 옮기고 깨끗한 빌드를 다시 시도하십시오.

+0

프레임 워크를 옮기면 응용 프로그램이 전혀 컴파일되지 않습니다. Qt의 정적 버전에 대한 검색 경로를 프로젝트 등에서 지정해야합니까? – Carlj901

+0

컴파일되지 않거나 링크되지 않습니까? 후자의 경우 정적 라이브러리가 올바르게 검색되지 않았 음을 의미합니다. 어쨌든 명시 적 연결을 시도하십시오. Makefile의'-lQtGui'를'/path/to/your/libQtGui.a '로 변경합니다. –

+0

내 메이크 파일에서 -lQtGui를 찾을 수 없습니다 – Carlj901

관련 문제