GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compiler du code Windows Visual C++ sous Linux

Tant que vous écrivez votre code de manière portable (sans utiliser de fonctionnalités spécifiques au système d'exploitation/compilateur telles que windows.h ou des extensions de compilateur spécifiques) et utilisez des bibliothèques portables qu'il doit compiler avec Visual Studio et GCC.

Le fait est que même s'ils travaillent tous les deux, ils le font un peu différemment. Il s'agit principalement de paramètres par défaut différents, que vous devrez peut-être remplacer explicitement. Par exemple :

  • Visual Studio 2017 et versions ultérieures utilisent par défaut C++14. Utilisez l'option /std pour spécifier une norme différente.

  • GCC a un ensemble par défaut, mais vous permet de changer le standard que vous utilisez pour la compilation. Compiler avec

    g++ example.cpp
    

    utilise le standard par défaut (standard C++98 pour GCC avant la version 6 et C++14 pour GCC après la version 6). Votre code semble échouer car vous utilisez des fonctionnalités C++11 mais votre compilateur utilise par défaut une norme plus ancienne.

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

    devrait faire disparaître certaines de vos erreurs en spécifiant explicitement la norme, dans ce cas la norme C++11.

Ce ne sont que des compromis différents que les compilateurs choisissent. La prise en charge d'un seul standard facilite probablement le support et la correction des erreurs, car vous n'avez pas de combinaisons différentes de compilateur + version standard qui pourraient éventuellement avoir des bogues différents. Pouvoir changer le standard utilisé pour la compilation permet de tester plus facilement si un programme fonctionne bien avec un nouveau standard ou quels changements cassants vous devez corriger etc...

En général, GCC est plutôt minimal et vous le spécifiez explicitement si vous voulez qu'il fasse des choses supplémentaires. Je recommanderais d'utiliser quelque chose comme :

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

Utilisation de -Wall et -Wextra donner un niveau d'avertissement décent pour commencer avec -pedantic vous indique si vous essayez d'utiliser une extension de compilateur qui fonctionne mais rendrait votre code moins portable, et enfin et surtout, vous devez toujours spécifier la norme que vous souhaitez utiliser, que ce soit -std=c++11 , -std=c++14 ou l'ancien -std=c++98 .


Vous aimerez peut-être également découvrir la possibilité de développer et de déboguer à distance à l'aide de VS 2015 et de l'extension de développement Linux. Visual C++ pour le développement Linux (30 mars 2016)


Linux
  1. Linux – Comment désinstaller Grub ?

  2. Comment compiler et installer un logiciel à partir du code source sous Linux

  3. Détecter Windows ou Linux en C, C++

  4. Comment coder un module du noyau Linux ?

  5. Clang peut-il compiler du code avec des bibliothèques .a compilées par GCC ?

Comment compiler et exécuter des programmes C, C++ sous Linux

Comment installer Windows PowerShell Core 6.0 sous Linux

Comment installer Visual Studio Code sur Fedora 36 Linux

Comment installer Visual Studio Code sur Rocky Linux 8

Comment installer Visual Studio Code sur Linux Mint 20

Comment puis-je profiler du code C++ exécuté sous Linux ?