2

Windowsを対象としたLinuxでコマンドラインからQtアプリケーションをビルドしようとしています。mxe を使用して、ウィンドウをターゲットとするツールチェーンを構築しましたが、ビルドはさまざまなスレッド関連のビットについて泣き言を言って失敗します。mxe は winpthreads でビルドされており、パッケージ化された mingw コンパイラを使用して、Qt プロジェクトがクリエーター内から Windows 自体にビルドされることを知っています。ARM Linux クロス コンパイラを使用してビルドに成功しているので、ウィンドウを同じように処理したいだけです。すべてのターゲットに対して、ビルド サーバーまたは Jenkins から 1 行のビルドを取得しようとしています。

クロス ツールチェーン ビルドを実行するときに mxe に渡す必要があるものを欠いているか、このビルドを成功させるために qmake に渡す必要があるものを欠いていると思います。

4

2 に答える 2

3

この問題は、mingws pthreads 実装とは対照的に、win32 スレッドを使用する GCC のデフォルト MXE ビルドにあります。

src/gcc.mk を編集し、winpthreads が $(PKG)_DEPS リストに追加されていることを確認してから、configure 行を変更して --enable-threads=win32 が --enable-threads=posix になるようにします。

次に、winpthreads と gcc を再作成します。ここには循環的な依存関係があることに注意してください。最初に win32 スレッド (デフォルト) で gcc をビルドしてから、winpthreads でリメイクする必要があります。

これについて Andreia Gaita に感謝します - http://blog.worldofcoding.com/2014/05/cross-compiling-c11-without-going-madder.html

于 2015-08-05T12:56:43.233 に答える