GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kompilieren Sie Windows Visual C++-Code unter Linux

Solange Sie Ihren Code portabel schreiben (ohne Betriebssystem-/Compiler-spezifische Funktionen wie windows.h oder spezifische Compiler-Erweiterungen) und portable Bibliotheken verwenden, die es sowohl mit Visual Studio als auch mit GCC kompilieren sollte.

Die Sache ist, dass sie zwar beide funktionieren, aber ein wenig anders. Meistens sind es andere Standardeinstellungen, die Sie möglicherweise explizit überschreiben müssen. Als Beispiel:

  • Visual Studio 2017 und höher verwendet standardmäßig C++14. Verwenden Sie die Option /std, um einen anderen Standard anzugeben.

  • GCC hat einen Standardsatz, ermöglicht es Ihnen jedoch, den Standard zu ändern, den Sie für die Kompilierung verwenden. Kompilieren mit

    g++ example.cpp
    

    verwendet den Standardstandard (C++98-Standard für GCC vor Version 6 und C++14 für GCC nach Version 6). Ihr Code scheint fehlzuschlagen, weil Sie C++11-Funktionen verwenden, Ihr Compiler jedoch standardmäßig einen älteren Standard verwendet.

    g++ -std=c++11 example.cpp
    

    sollte einige Ihrer Fehler verschwinden lassen, indem Sie den Standard explizit angeben, in diesem Fall den C++11-Standard.

Dies sind nur andere Kompromisse, die die Compiler wählen. Dass nur ein Standard unterstützt wird, erleichtert wahrscheinlich den Support und die Behebung von Fehlern, da Sie keine unterschiedlichen Kombinationen aus Compiler und Standardversion haben, die möglicherweise unterschiedliche Fehler haben könnten. In der Lage zu sein, den für die Kompilierung verwendeten Standard zu ändern, macht es einfacher zu testen, ob ein Programm mit einem neuen Standard gut funktioniert oder welche bahnbrechenden Änderungen behoben werden müssen usw...

Im Allgemeinen ist GCC eher minimal und Sie müssen es explizit angeben, wenn Sie möchten, dass es einige zusätzliche Dinge tut. Ich würde empfehlen, so etwas zu verwenden:

g++ -Wall -Wextra -pedantic -std=c++11 example.cpp

Mit -Wall und -Wextra Geben Sie eine anständige Warnstufe, um mit -pedantic zu beginnen sagt Ihnen, ob Sie versuchen, eine Compiler-Erweiterung zu verwenden, die funktioniert, aber Ihren Code weniger portabel machen würde, und nicht zuletzt sollten Sie immer den Standard angeben, den Sie verwenden möchten, sei es -std=c++11 , -std=c++14 oder das ältere -std=c++98 .


Vielleicht möchten Sie auch die Möglichkeiten zum Entwickeln und Remotedebuggen mit VS 2015 und der Linux-Entwicklungserweiterung ausprobieren.Visual C++ für die Linux-Entwicklung (30. März 2016)


Linux
  1. Linux – Wie deinstalliere ich Grub?

  2. So kompilieren und installieren Sie Software aus dem Quellcode unter Linux

  3. Erkennen Sie Windows oder Linux in C, C++

  4. Kann Clang Code mit GCC-kompilierten .a-Bibliotheken kompilieren?

  5. Wie erstellt man Visual Studio Solution unter Linux?

So kompilieren und führen Sie C- und C++-Programme unter Linux aus

So installieren Sie Windows PowerShell Core 6.0 unter Linux

So installieren Sie Visual Studio Code unter Fedora 36 Linux

So installieren Sie Visual Studio Code unter Rocky Linux 8

So installieren Sie Visual Studio Code unter Linux Mint 20

Wie kann ich C++-Code profilieren, der unter Linux ausgeführt wird?