Linux x86_64 호스트 머신을 사용하여 Windows x86_64 대상에 대한 Qt 라이브러리 (그리고 결국 내 애플리케이션)를 교차 컴파일하고 싶습니다. 친한 것 같지만이 과정의 일부에 대해 근본적인 오해가있을 수 있습니다.
내 Fedora 시스템에 모든 mingw 패키지를 설치 한 다음 win32-g++
내 환경에 맞게 qmake.conf 파일을 수정하여 시작했습니다. 그러나, 나는 Qt를위한 몇 가지 겉으로는 명백한 구성 옵션으로 붙어 받고있는 것으로 보인다 : -platform
와 -xplatform
. Qt 문서에 따르면 이것이 -platform
호스트 머신 아키텍처 (컴파일하는 곳)이고 -xplatform
배포하려는 대상 플랫폼이어야합니다. 제 경우에는 설정 -platform linux-g++-64
하고 -xplatform linux-win32-g++
linux-win32-g ++는 수정 된 win32-g ++ 구성입니다.
내 문제는 이러한 옵션으로 configure를 실행 한 후 크로스 컴파일러 (x86_64-w64-mingw32-gcc) 대신 내 시스템의 컴파일러를 호출한다는 것입니다. -xplatform
옵션을 생략하고 -platform
대상 사양 (linux-win32-g ++)으로 설정하면 크로스 컴파일러를 호출하지만 일부 유닉스 관련 함수가 정의되지 않은 경우 오류가 발생합니다.
다음은 최근 시도의 결과입니다. http://pastebin.com/QCpKSNev .
질문 :
리눅스 호스트에서 Windows 용 Qt는 뭔가를 크로스 컴파일 할 때, 네이티브 컴파일러한다 이제까지 호출? 즉, 크로스 컴파일 과정 에서 크로스 컴파일러 만 사용해야하지 않습니까?
-xplatform
옵션을 지정할 때 Qt의 구성 스크립트가 시스템의 네이티브 컴파일러를 호출하는 이유를 알 수 없습니다 .mingw 크로스 컴파일러를 사용하는 경우 언제 사양 파일을 처리해야합니까? GCC에 대한 사양 파일은 여전히 나에게 일종의 미스터리이므로 여기에 배경이 도움이 될지 궁금합니다.
일반적으로 내 qmake.conf에서 크로스 컴파일러를 지정하는 것 외에 고려해야 할 사항은 무엇입니까?