2017-01-22 7 views
1

Wenn ich einige C++ - Code auf einer virtuellen Maschine kompiliert, die auf meinem Windows-Computer ausgeführt wird, konnte ich für andere Plattformen kompilieren? Würde der Kompilierung von C++ - Code auf meiner virtuellen Maschine mit installiertem Mac OS (mit einem Compiler für Mac) eine Arbeitsdatei ergeben, die tatsächlich auf einem Mac laufen kann?Kompilieren mit virtueller Maschine

Antwort

3

Zweiteilige Antwort: ja, aber Sie können nicht legal installieren Mac OS auf einer virtuellen Maschine. Ein Cross-Compiler ist jedoch einer, der auf einer Architektur kompiliert und Code erzeugt, der auf einem anderen läuft. Und das ist legal (und etwas üblich, für eingebettete Architekturen).

+0

Ich denke nicht, dass das für meinen Fall funktionieren würde. Ich möchte mit Qt Creator für IOS bereitstellen. Im Moment kann ich meine Qt-Projekte unter Windows und Android bereitstellen. Aber um auf IOS zu implementieren, brauche ich einen Mac. Aus diesem Grund möchte ich Mac OS auf einer virtuellen Maschine installieren und auf dieser Qt Creator installieren. Ich bin mir ziemlich sicher, dass Qt-Dokumente sagen, dass Sie einen Mac brauchen. – cppxor2arr

+2

@ 6EQUJ5 Ich verstehe *, wenn Sie einen Mac gekauft haben, könnten Sie für IOS kompilieren. Sie können ** dann ** Windows (nur die ** Full Retail ** Edition) in einer virtuellen Maschine (auf dem Mac) installieren und es für Windows kompilieren (und dann das unter Windows). Dies ermöglichen die jeweiligen ** Lizenzen ** (und keine technische Einschränkung). Es gibt ** [Cross Compiler] (https://github.com/waneck/linux-ios-toolchain) für * linux * zu * ios * (ich bin mir nicht sicher, wie vollständig sie sind). –

+0

Danke für die Information. Ich denke, ich muss akzeptieren, dass ich ab sofort keine Qt-Anwendungen für IOS bereitstellen werde. Nochmals vielen Dank! – cppxor2arr

1

Ihre Frage hat absolut nichts mit virtuellen Maschinen zu tun.

Sie fragen im Wesentlichen, ob C++ eine portable Sprache ist.

Die Antwort ist, dass ja, C++ eine tragbare Sprache ist, vorausgesetzt, Sie sind vorsichtig genug, nur Standardfunktionen zu verwenden und die Verwendung externer Bibliotheken zu vermeiden, die nur auf bestimmten Betriebssystemen funktionieren.

Beachten Sie, dass C++ eine portable Sprache ist, ausführbare Dateien, die durch das Kompilieren von C++ erzeugt werden, sind dies im Allgemeinen nicht. Daher müssen Sie jedes Zielsystem neu kompilieren.

+2

Wenn Sie meine Frage gelesen haben, fragte ich, ob ich ausführbare Dateien für verschiedene Systeme erstellen könnte, indem ich auf einer ** virtuellen Maschine ** neu kompiliere, die ein anderes System installiert hat. – cppxor2arr

+4

Es spielt keine Rolle, ob Sie unter einer virtuellen Maschine oder mit echter Hardware kompilieren, auf der das Betriebssystem ausgeführt wird, auf das Sie zielen möchten. – drescherjm

+0

@drescherjm Also, wenn ich eine ausführbare Datei aus C++ - Code (portable), die auf dem Mac läuft, erstellen wollte, konnte ich Mac OS auf meiner virtuellen Maschine auf meinem Windows-Rechner installieren und den Code mit dem entsprechenden Compiler kompilieren? Alles auf dem Mac OS läuft auf der virtuellen Maschine? – cppxor2arr

Verwandte Themen