2017-09-08 1 views
0

우분투 빌드 머신이 있습니다.Linux에서 mingw 및 QT 빌드 환경을 설정하려면 어떻게합니까?

내가 설치 한 MinGW를 사용하여 Windows 용으로 컴파일하려고합니다.

QT 앱을 컴파일 중입니다 (QT5가 발생합니다).

나는 CMake를 사용하고 있습니다.

네이티브 빌드는 기본적으로 잘 작동하지만 CMake가 FindPackage에서 사용하는 파일을 찾을 수 없기 때문에 크로스 컴파일이 실패합니다. 이 문제를 해결하기 위해 우분투 빌드 머신의 관련 MinGW 폴더에 MSYS2 MinGW/QT5 (아름답게 작동 함)를 설치하여 QT 라이브러리 파일, 헤더 파일, cmake 파일 및 공유/qt5 파일을 모두 복사했습니다. 또한 QT5 cmake 파일이 올바른 파일을 찾을 때 "qmake", "rcc", "moc"및 "uic"에 대한 원시 바이너리를 기호화 된 위치에 심볼릭 링크했습니다. 필자는 cmake 파일을 편집하여 대상 시스템 접두사가있는 바이너리를 찾고 symlinks의 이름을 변경해야한다고 생각하지만 게으른 것이 었습니다.

은 CMake 지금은 성공하지만 그때하려고 할 때 "확인"나는 "MOC"에서 다음과 같은 오류가 내 프로그램 :

moc: could not find a Qt installation of '' 

내가 환경 변수 또는 두 가지를 놓치고 있다고 생각한다.

이상적으로 나는 MinGW를 사용하여 Linux에서 Windows 용 QT 응용 프로그램을 컴파일하기 위해 설치할 수있는 사전 빌드 된 우분투 패키지를 지정하는 솔루션을 원합니다. 솔직하게 말해서 그 어떤 것도 훌륭 할 것입니다.

+0

[mxe] (http://mxe.cc)를 보셨습니까? 사용 사례를 모두 포함해야합니다. – MateoConLechuga

+0

"Windows 용 Minimalist GNU"의 축소 인 MinGW는 기본 Microsoft Windows 응용 프로그램을위한 최소한의 개발 환경입니다. 리눅스에서 보통의 GNU를 사용하기 때문에 MinGW가 필요하지 않습니다. – AlexanderVX

+0

@AlexanderVX : Linux에서 Windows 용으로 빌드하려는 경우 필요합니다. 사실 리눅스에서 Windows 용으로 빌드하는 다른 방법은 생각할 수 없습니다. 당신이 생각할 수 있는지 말해주십시오. – AlastairG

답변

0

대답은 Qt의 내 자신의 사용자 지정 버전을 컴파일해야한다는 것입니다.

내가 얻은 오류는 qmake 바이너리가 바이너리가 아니며 다른 것에 대한 심볼릭 링크 였기 때문입니다. 수정하면 성공적으로 컴파일 할 수 있지만 모든 종속성이 잘못되어 결과 바이너리가 실행되지 않습니다. 이 문제를 해결하기 위해 Qt와 그 모든 의존성을 직접 컴파일해야합니다. (이러한 순환 종속성을 포함하는 Harfbuzz가 좋지 않습니다. 이러한 바이너리를 컴파일하고 사용하려는 마지막 시도는 단순히 충돌 한 실행 파일을 만듭니다.

I 정말 정말 우분투는는 MinGW와 등 등 libicu, Qt는, 같은 인기있는 패키지를 컴파일하고 패키지도로를 제공 할 것이기 누구든지이는 MinGW 패키지를 제공 할

유용한 링크 :.

https://marc.wäckerlin.ch/computer/cross-compile-on-ubuntu-linux-for-windows-using-mingw

https://github.com/mwaeckerlin/mingw

관련 문제