Eclipse で同じ Qt コードを使用して、Linux と Windows の両方の Linux で実行可能ファイルを作成することは可能ですか? または、Linux マシンに Qt Creator をインストールする必要がありますか?
5 に答える
LinuxでWindowsバイナリをビルドする場合は、クロスコンパイルする必要があります。これは、Windowsクロスコンパイラをインストールする必要があることと、リンク先のライブラリをクロスコンパイラで構築する必要があることを意味します。基本的なQtプログラムの場合、これは少なくともクロスコンパイルされたQtが必要であることを意味します。
クロスコンパイルは、EclipseやQtCreatorとは何の関係もありません。どちらも箱から出してクロスコンパイルをサポートしているとは思いませんが、そうするようにさせることができると思います。
少し前に私はこれを行おうとしていましたが、クロスコンパイルに関するリソースをここで見つけました:http ://silmor.de/qtstuff.cross.php 。最後に、時間がないため、Windowsでwin32バージョンをコンパイルしましたが、可能であるはずです。
もちろん、Qt Creator を Linux にインストールすることも可能です。同じ Qt コードを使用して、Linux/Win32/Mac でコンパイルできます。ただし、プラットフォーム固有のコードは次の範囲内でのみ使用する必要があります。
#ifdef Q_OS_WIN32
qDebug() << "Executable files end in .exe";
#endif
他のオペレーティング システム用の他の定義があります。そうすれば、あなたは安全であり、それがクロスプラットフォームのコードであることに賭けることができます. :-)
http://www.qtsoftware.com/downloadsを参照して、 Qt SDK for Linux/X11 をダウンロードしてください。Qt Creator、Assistant、Designer などが含まれています。
Eclipse には、公式のプラグインがあります。
C++ の Qt Eclipse 統合
Eclipse プラグインは、4.1.0 以降の Qt バージョンを使用してプログラムを作成するために使用できます。
Windows の実行可能ファイルは Linux では機能せず、その逆も同様です。あなたはこれを行うことができます:
#ifdef Q_WS_X11
QString *OS=new QString("Linux");
std::cout << OS->toStdString() << std::endl;
#endif
#ifdef Q_WS_WIN
QString *OS=new QString("Windows");
std::cout << OS->toStdString() << std::endl;
#endif
#ifdef Q_WS_MACX
QString *OS=new QString("Mac");
std::cout << OS->toStdString() << std::endl;
#endif