GNU/Linux >> Znalost Linux >  >> Linux

Jak zkompilovat kód Windows Visual C++ na Linuxu

Pokud svůj kód napíšete přenosným způsobem (ne pomocí funkcí specifických pro OS/kompilátor, jako je windows.h nebo konkrétní rozšíření kompilátoru) a používat přenosné knihovny, které by měl kompilovat jak s Visual Studio, tak s GCC.

Jde o to, že zatímco oba pracují, dělají to trochu jinak. Většinou se jedná o různá výchozí nastavení, která možná budete muset explicitně přepsat. Jako příklad:

  • Visual Studio 2017 a novější je výchozí C++14. Pomocí volby /std zadejte jiný standard.

  • GCC má výchozí nastavení, ale umožňuje vám změnit standard, který používáte pro kompilaci. Kompilace s

    g++ example.cpp
    

    používá výchozí standard (standard C++98 pro GCC před verzí 6 a C++14 pro GCC po verzi 6). Zdá se, že váš kód selže, protože používáte funkce C++11, ale váš kompilátor standardně používá starší standard.

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

    by měly některé vaše chyby zmizet explicitním specifikováním standardu, v tomto případě standardu C++11.

Jsou to jen různé kompromisy, které kompilátoři volí. Podporovaný pouze jeden standard pravděpodobně usnadňuje podporu a opravy chyb, protože nemáte různé kombinace kompilátoru + standardní verze, které by mohly mít různé chyby. Možnost změnit standard používaný pro kompilaci usnadňuje testování, zda program funguje dobře s novým standardem nebo jaké zásadní změny musíte opravit atd...

Obecně je GCC spíše minimální a pokud chcete, aby dělal nějaké další věci, musíte jej výslovně zadat. Doporučil bych použít něco jako:

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

Pomocí -Wall a -Wextra dát slušnou úroveň varování začít s -pedantic vám řekne, zda se pokoušíte použít rozšíření kompilátoru, které funguje, ale váš kód by byl méně přenosný, a v neposlední řadě byste měli vždy specifikovat standard, který chcete použít, ať už je to -std=c++11 , -std=c++14 nebo starší -std=c++98 .


Možná byste se také rádi podívali na možnost vývoje a vzdáleného ladění pomocí VS 2015 a rozšíření Linux Development.Visual C++ pro vývoj Linuxu (30. března 2016)


Linux
  1. Jak zkompilovat a nainstalovat software ze zdrojového kódu na Linuxu

  2. Detekce Windows nebo Linuxu v C, C++

  3. Jak kódovat modul jádra Linuxu?

  1. Linux – Jak odinstalovat Grub?

  2. Může Clang kompilovat kód s GCC zkompilovaným .a libs?

  3. Jak vytvořit řešení Visual Studio pod Linuxem?

  1. Jak duální bootování Linuxu a Windows

  2. Jak obnovit heslo Windows pomocí Linuxu

  3. Jak kompilovat C, C++ a Java pomocí terminálu v Linuxu