2009-06-08 82 views

答えて

0

もちろん、LinuxにQt Creatorをインストールすることは可能です。同じ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などが含まれています。

+0

を実際に私は、QTを使用してLinuxでWindowsの実行ファイルを作成する必要があり、私の要件は、私はちょうどWindowsのQTバイナリをインストールし、私は、Linuxで作成する実行可能ファイルを実行する必要があると述べています。ですから、LinuxでQT Eclipseを使用してLinuxとWindowsの両方の実行可能ファイルを作成することができます。 自分のプログラムでLinuxを実行可能にすることはできますが、LinuxでWindowsの実行可能ファイルを取得する方法はありますか? –

+0

これはLinux内からWindows用のクロスコンパイルの方法に関するリンクです - http://silmor.de/29 –

-1

Eclipseの場合、official pluginがあります。 Eclipseプラグインは に使用することができるC++

ため

QtのEclipseの統合は、4.1.0以降の任意のQtバージョン を使用してプログラムを作成します。

+0

彼はすでにQtにEclipseを使用しています。 –

0

私はこれをやろうとしていましたが、ここでクロスコンパイルに関するリソースが見つかりました:http://silmor.de/qtstuff.cross.php。最後に、Windowsの下で、時間の不足のためにwin32版をコンパイルしましたが、可能でなければなりません。

3

LinuxでWindowsバイナリをビルドする場合は、クロスコンパイルが必要です。つまり、クロスコンパイラがインストールされているライブラリと、クロスコンパイラで構築されたライブラリをリンクする必要があります。基本的なQtプログラムでは、少なくともクロスコンパイルされたQtが必要です。

クロスコンパイルは、EclipseやQt Creatorとは関係ありません。私は両者がクロスコンパイルをサポートしているとは思っていませんが、そうすることができると思います。

+0

実際には、QTを使ってLinuxで実行可能なWindowsを作成する必要があります。私の要件では、Windows QTバイナリだけをインストールし、Linuxで作成した実行ファイルを実行する必要があります。 LinuxでQT Eclipseを使用してLinuxとWindowsの両方の実行可能ファイルを作成することはできますか? –

+0

自分のプログラムでLinuxを実行可能にすることはできますが、LinuxでWindowsの実行可能ファイルを取得する方法はありますか? –

+1

申し訳ありませんが、あなたの質問は私には不明です。 Linux上でWindowsバイナリをクロスコンパイルする場合は、まずQtをクロスコンパイルする必要があります。自分でそれを行う必要があります。私はどのOS用にも事前にパッケージ化されたクロスコンパイルされたQtは見ていません。 Qt Eclipseの統合では、バイナリはまったく作成されません。それはコンパイラを実行し、LinuxでWindowsバイナリをビルドするには、クロスコンパイラがインストールされている必要があります。 – bluebrother

-3

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 
+2

何のために?このコードの問題は何ですか?どのOSを使用するのかを入力するだけです。何もありません。わかりません... – Tebe

関連する問題