2017-01-22 8 views
1

Windowsマシンで実行されている仮想マシンでC++コードをコンパイルした場合、他のプラットフォーム用にコンパイルできますか? Mac OSをインストールした仮想マシンのC++コードをコンパイルすると(Mac用のコンパイラを使用)、実際にMac上で動作する作業ファイルが得られますか?仮想マシンでのコンパイル

答えて

3

二つの部分の答え:はいしかしはあなたが法的は、仮想マシン上のMac OSをインストールすることはできません。しかし、クロスコンパイラは、あるアーキテクチャでコンパイルし、別のアーキテクチャ上で動作するコードを生成するものです。そして、それはの法律です(組み込みアーキテクチャの場合はやや一般的です)。

+0

私のケースではうまくいかないと思います。 Qt Creatorを使用してIOSに展開したいと考えています。今はWindowsとAndroidにQtプロジェクトを展開できます。しかし、IOSに展開するにはMacが必要です。私は仮想マシンにMac OSをインストールし、その上にQt Creatorをインストールしたいのです。 QtのドキュメントでMacが必要だとはっきりと分かっています。 – cppxor2arr

+2

@ 6EQUJ5私が理解している*もしあなたがMacを購入したなら、あなたはIOSのためにコンパイルすることができます。 Virtual Machine(Macの場合)にWindowsをインストールして(**フルバージョン**のみ)、Windows用にコンパイルして(Windows上で実行する)ことができます。これはそれぞれ**ライセンス**が許すものであり、技術的な制限はありません。 ** linux * to * ios *の** [クロスコンパイラ](https://github.com/waneck/linux-ios-toolchain)があります(私はそれらがどれほど完全であるかはわかりません)。 –

+0

情報ありがとうございます。私は今のところIOSにQtアプリケーションを導入することはできないと受け入れなければならないと思う。再び、ありがとう! – cppxor2arr

1

あなたの質問は、仮想マシンとはまったく関係ありません。

本質的にC++が移植可能な言語かどうかを尋ねています。

答えは、標準機能のみを使用し、特定のオペレーティングシステムでのみ動作する外部ライブラリを使用しないように十分注意している限り、C++は移植可能な言語です。

C++は移植可能な言語であり、C++をコンパイルすることによって生成される実行可能ファイルは一般的ではありません。したがって、ターゲットとする各システムで再コンパイルする必要があります。

+2

私の質問を読んだ場合は、異なるシステムがインストールされている**仮想マシン**で再コンパイルすることによって、異なるシステム用の実行可能ファイルを生成できるかどうかを尋ねました。 – cppxor2arr

+4

ターゲットにするosを実行している仮想マシンまたは実際のハードウェアの下でコンパイルするかどうかは関係ありません。 – drescherjm

+0

@drescherjm Macで動作するC++コード(ポータブル)から実行可能ファイルを生成したいのであれば、自分のWindowsマシン上の仮想マシンにMac OSをインストールし、適切なコンパイラでコードをコンパイルできますか?仮想マシン上で動作しているMac OS上のすべてですか? – cppxor2arr