2017-09-08 2 views
0

私はUbuntuビルドマシンを持っています。LinuxでmingwとQTのビルド環境を設定するにはどうすればよいですか?

私がインストールしたMinGWを使用してWindows用にクロスコンパイルしたいと考えています。

私はQTアプリケーションをコンパイルしています(QT5が発生します)。

私はCMakeを使用しています。

ネイティブのビルドはすぐに使えますが、CMakeがFindPackageで使用されるファイルを見つけることができないため、クロスコンパイルは失敗します。これを解決するために、MSYS2 MinGW/QT5のインストール(美しい動作)からUbuntuビルドマシンの関連するMinGWフォルダにQTライブラリファイル、ヘッダファイル、cmakeファイル、および共有/ qt5のファイルをすべてコピーしました。私はQT5 cmakeファイルが探しているように見えるので、 "qmake"、 "rcc"、 "moc"、 "uic"のネイティブバイナリを正しい場所に象徴的にリンクしました。私はcmakeファイルを編集して、ターゲットシステムプレフィックスを持つバイナリを探し、シンボリックリンクの名前を変更するべきだったと思いますが、私は怠け者でした。

CMakeのは今成功しますが、私はその後、私は「MOC」から次のエラーを取得する私のプログラムを「作る」にしようとすると:

moc: could not find a Qt installation of '' 

私は環境変数または2に行方不明だと思います。

理想的には、MinGWを使用してWindows上でWindows用のQTアプリケーションをコンパイルするためにインストールできる、あらかじめ構築されたUbuntuパッケージを指定するソリューションが欲しいです。

+0

あなたは[mxe](http://mxe.cc)を見ましたか?それはすべてのあなたのユースケースをカバーする必要があります。 – MateoConLechuga

+0

「Minimalist GNU for Windows」の縮小版であるMinGWは、ネイティブのMicrosoft Windowsアプリケーション用の最小限の開発環境です。あなたは普通の普通のGNUを持っているので、Linux上でMinGWは必要ありません。 – AlexanderVX

+0

@AlexanderVX:Linux上でWindows用にビルドする場合は、それが必要です。実際には、Linux上でWindowsを構築するための他の方法は考えられません。あなたが考えることができるかどうかを教えてください。 – AlastairG

答えて

0

答えはQtの独自のカスタムバージョンをコンパイルする必要があることが判明しました。

私が得たエラーは、qmakeバイナリがバイナリではなく、他のものへのシンボリックリンクであることが判明したためです。私が正常にコンパイルすることができたが、すべての依存関係が間違っていて、結果として得られたバイナリが実行可能でないという問題を修正しました。これを解決するには、Qtとそのすべての依存関係を自分自身でコンパイルする必要があります:(これらは循環依存性を持つHarfbuzzを含むので、これはうまくありません。本当にUbuntuは、このようなMinGWのとなどなどlibicu、Qtの、などの人気のパッケージをコンパイルし、パッケージあまりにとしてそれらを提供するために誰がMinGWのパッケージを提供することを望む

便利なリンク:。

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

https://github.com/mwaeckerlin/mingw

関連する問題