問題タブ [mxe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - MXE gcc で Qt アプリをビルドするときに std::mutex が見つからない
Windowsを対象としたLinuxでコマンドラインからQtアプリケーションをビルドしようとしています。mxe を使用して、ウィンドウをターゲットとするツールチェーンを構築しましたが、ビルドはさまざまなスレッド関連のビットについて泣き言を言って失敗します。mxe は winpthreads でビルドされており、パッケージ化された mingw コンパイラを使用して、Qt プロジェクトがクリエーター内から Windows 自体にビルドされることを知っています。ARM Linux クロス コンパイラを使用してビルドに成功しているので、ウィンドウを同じように処理したいだけです。すべてのターゲットに対して、ビルド サーバーまたは Jenkins から 1 行のビルドを取得しようとしています。
クロス ツールチェーン ビルドを実行するときに mxe に渡す必要があるものを欠いているか、このビルドを成功させるために qmake に渡す必要があるものを欠いていると思います。
qt - MXE を使用した KDSoap のクロスコンパイル
Ubuntu 15.04 の MXE で Windows 用にクロスコンパイルされた qt5:
次に、KDSoap リポジトリのクローンを作成し、クロスコンパイルを試みました。
そして、後にリンカーの問題がありますmake
:
これらはpcre
、crypto
、openssl
、zlib
およびその他のものです。
リンカー コマンドに a-lpcre
を追加しようとしました。CMakeFiles/kdsoap.dir/linklibs.rsp
そして、リンクを手動で再実行します (src/KDSoapClient
たとえば):
しかし、pcre
関連のリンク エラーはなくなっていません。
さらに調査するにはどうすればよいでしょうか。または、Qt ベースのコードをクロスコンパイルする別の手順はありますか?
mxe - Linux用のLinuxでのMXEコンパイル
だから私はこのプロジェクトhttp://mxe.cc/を見て試してみました.これでWindows用のものをコンパイルするのはとても簡単なようです. 代わりにLinux用のバイナリをコンパイルするために少しハックしようとしました。なぜなら、他のシステム用に簡単にコンパイルできる場合、ホスト用にコンパイルするのはどうして難しいのでしょうか? 90% は箱から出してすぐにビルドできるように見えますが、いくつかのエラーがあり、ビルドできません。Linux ホスト用にビルドするには、mxe をどのように正しく設定すればよいですか? これがサポートされていないことはわかっていますが、とにかくソースからビルドするので、それほど難しいことではないと思います。また、ダウンロードしたソースの変更もほとんどありません (Windows ビルドの場合)。
なぜ私が共有のものを使いたくないのかと尋ねるかもしれない人々のために、私は基本的に2つの選択肢を持ちたいと思っています:
- 依存関係が指定されたユーザー用の dpkg パッケージ (Linux の方法)
- 単一のスタンドアロン静的実行可能ファイル
助言がありますか?それとも、(mxe のように多くの手作業をせずに) ゼロから構築する方法について、Linux に関するまったく別のガイドがあるのでしょうか?
macos - mxe クロス コンパイラ Mac 上の QSerialPort
Mac OS X で qt 5.5.1 を使用しており、Windows 用のアプリケーションを開発したいと考えています。ここまでは順調ですね。.exe ファイルを生成するために、クロス コンパイラM クロス環境 (MXE)をインストールしました。コンパイラは動作しているようですが、mxe が Qt ライブラリのシリアルポートを認識していないという問題があります。qt5.5 を使用しているため、Qt シリアル ポートを手動でビルドする必要がなくなりました。Qt Serial Port は公式には Qt AFAIK の一部です。コマンドで Qt Makefile ジェネレーター ツールを実行すると、次のようになります。
次のエラー メッセージが表示されます。
アプリケーションの *.pro ファイルに、次の行を追加しました。
この時点で誰でも私を助けることができますか?serialport lib を mxe にリンクする必要があると思います。しかし、これを解決する方法がわかりません。
ありがとう!
c++ - 理論または方向性、c++、qt、および MXE を使用したクロスコンパイル
私は少し助けを求めています。誰かが修正する問題ではありませんが、より多くの理論や正しい道が役立つでしょう。私はC、C ++にまったく慣れていません。しかし、私は友人に助けを申し出て、自分自身が少し立ち往生してしまいました.
MXE でプロジェクトを Windows 用にクロスコンパイルしています。このプロジェクトでは、QT 4 (QTCore、QTGui、QTNetwork、QTWebKit)、Boost、OpenSSL、BerkelyDB を使用しています。
彼が QTWebKit を追加する前に、私はi686-w64-mingw32.staticを使用してプロジェクトをコンパイルできました。QTScript とのライブラリの競合により、MXE は QTWebKit を static でコンパイルできず、i686-w64-mingw32 でコンパイルする必要があることを理解しています。共有
現在、exe はi686-w64-mingw32.sharedでコンパイルされますが、実行には libgcc* dll を含む約 35 の異なる DLL ライブラリが必要です。.pro または makefile には-static-libgccと-static-libstdc++がありますが、
だから私の質問はです。
このプロジェクトをコンパイルして、ほとんどのライブラリが静的になるようにする方法はありますか?
このような状況でご提供いただけるご支援に感謝いたします。
linux - Qt3D をサポートする mxe を使用して Qt5.5 アプリをビルドする
基本的に、 Ubuntu for Microsoft Windowsでプロジェクトを正常にクロスコンパイルする方法について、これらの指示に従っています。Qt5.5
私のプロジェクトは に依存しておりQt3D
、 でサポートされることを期待していましたが、Qt5 で準備されmxe
たプロジェクトのビルドを呼び出すと、次のようにすぐに報告されます。mxe
さらに、mxe の「qt3d」ターゲットをビルドすると、数秒待ってから次のように報告されます。
言い換えれば、大きな怠け者は何も起こらないようです。
したがって、私のような完全な mxe 初心者に適した観点から言えば、mxe の make を呼び出して、Qt3D サポートを使用して qt5 をビルドし、結果の mxe qmake でプロジェクトをクロスコンパイルできるようにする正しい方法は何でしょうか?
ありがとう!
c++ - Windows のクロス コンパイル: cmake と mxe: 依存関係が失われました
Windows用にクロスコンパイルするためにcmakeとMXEを使用しようとしています。
*nix ではすべて正常に動作します。ただし、一部の依存関係 (Grantlee5 および Qt5WebKitWidgets) を取得して MinGW およびクロス コンパイルで動作させる方法がわかりません。これが私のCMakeLists.txtの(最小限の)例です:
「cmake」を使用するだけで問題なく動作します。ただし、MXE のツールチェーンを使用して Widnows (i686-w64-mingw32.static-cmake) 用にクロス コンパイルすると、Grantlee5 と Qt5WebKitWidgets は次のメッセージで失敗します。
CMakeLists.txt:xx (find_package) でエラーを作成: 要求されたバージョン "" と互換性のあるパッケージ "Grantlee5" の構成ファイルが見つかりませんでした。[原文のまま]
次の構成ファイルが考慮されましたが、受け入れられませんでした:
もちろん、私の Grantlee5 バイナリは Windows/MinGW と互換性がありません。
ExternalProject_Add(Grantlee5 GIT_REPOSITORY https://github.com/steveire/grantlee.git ) はグラントリーをクロスコンパイルしているようですが、インストールターゲットで失敗します (もちろん、システムに Windows バイナリをインストールすることはできません)。
add_library(Grantlee5 /usr/local/src/grantlee/) は、find_library ステートメントを分割します。Grantlee はビルドを取得しますが、リンクに失敗します (grantlee/engine.h が見つかりません)
特定のターゲットのソースから Grantlee と Qt5WebKitWidgets をビルドするように cmake に指示する方法は? それを行う「正しい」方法は何ですか?