40 votes

Comment construire un projet Visual C++ pour Linux ?

Quelle est la meilleure et la plus simple façon de construire (pour Linux) une application C++ qui a été écrite dans Visual Studio ? Le code lui-même est prêt - je n'ai utilisé que des librairies multiplateformes.

Est-il possible de tout préparer sous Windows dans Visual Studio et de le construire ensuite avec un outil CLI sous Linux ? Y a-t-il des documents qui décrivent cela ?

EDITAR: Quelques informations supplémentaires :

  • Libs utilisées : stl, wxwidgets, boost, asio, cryptlib.

  • Très peu de connaissances de Linux.

EDIT#2 : J'ai choisi la solution suivante : Faire un nouveau projet avec kdevelop et tout compiler là.

19voto

OregonGhost Points 16615

Nous utilisons CMake pour les projets Linux. CMake peut générer des fichiers de projet KDevelop et Visual Studio, donc vous pouvez simplement créer votre fichier CMake comme origine des fichiers IDE spécifiques à la plate-forme. Le générateur KDevelop est bon, vous pouvez donc éditer et compiler dans KDevelop (qui appellera à son tour Make).

D'un autre côté, si vous n'avez rien de fantaisiste, vous pouvez utiliser CMake ou simplement Make pour construire la chose sur Linux, si vous voulez rester avec votre fichier de solution (ce que je fais actuellement pour une bibliothèque avec des applications de test). Cette approche devient compliquée quand votre processus de construction est plus que juste "jetez ces fichiers au compilateur et voyons ce qu'il fait", donc la solution CMake est à mon avis une bonne chose pour le développement multiplateforme.

7voto

pts Points 15396

Voici comment compiler manuellement du code C sous Linux sans outils de construction supplémentaires :

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2

Cependant, si votre projet est plus grand que quelques fichiers, vous pouvez utiliser un outil de construction à la place (comme CMake, voir la réponse d'OregonGhost) pour automatiser la compilation de nombreux fichiers et la rendre incrémentale. Si vous utilisez un outil de construction, il exécutera gcc sous le capot, avec les mêmes arguments que ci-dessus. Il est utile de comprendre les arguments ci-dessus, afin de pouvoir dépanner si votre compilation automatique échoue.

Ceci compilera code1.c et code2.c en programme binaire exécutable, chargera les fichiers .h depuis ., includedir1 et includedir2, chargera les bibliothèques (par exemple libuse1.so* et libuse2.so*) depuis les répertoires libdir1 et libdir2, utilisera les bibliothèques use1 (correspondant au nom de fichier libuse1.so*) et use2.

Si vous obtenez des erreurs de symboles non définis dans vos fichiers .c, vous devez spécifier plus de -I drapeaux. Si vous obtenez des erreurs de symbole non défini dans le fichier .o, vous devez spécifier plus de -l drapeaux. Si vous obtenez cannot find -l... vous devez spécifier plus de -L drapeaux.

4voto

dirkgently Points 56879

Quelle est la meilleure et la plus simple façon de construire une application c++, qui a été écrite avec Visual Studio, pour Linux ? Le code lui-même est prêt - je n'ai utilisé que des librairies multiplateformes.

  • Vérifiez s'il y a quelque chose qui ne fait pas partie de la norme C++.
  • Rincer et répéter
  • Créer un makefile ou un projet KDevelop

Et voilà !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X