web-dev-qa-db-fra.com

Comment construire un projet Visual C ++ pour Linux?

Quelle est la manière la meilleure et la plus simple de créer (pour Linux) une application C++ écrite dans Visual Studio? Le code lui-même est prêt - je n'ai utilisé que des bibliothèques multiplateformes.

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

EDIT: Quelques informations supplémentaires:

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

  • Très peu de savoir-faire Linux.

EDIT # 2: J'ai choisi la solution suivante: Créez un nouveau projet avec kdevelop et compilez tout là-bas.

40
mspoerr

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

D'un autre côté, si vous n'avez rien d'extraordinaire, 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 se complique lorsque votre processus de construction est plus que "lancez ces fichiers sur le compilateur et voyons ce qu'il fait", donc la solution CMake est à mon avis une bonne chose pour le développement multiplateforme.

19
OregonGhost

Voici comment compiler le code C manuellement 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 voudrez peut-être 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émentielle. Si vous utilisez un outil de construction, il exécutera gcc sous le capot, avec des arguments similaires ci-dessus. Il est utile de comprendre les arguments ci-dessus, afin que vous puissiez dépanner si votre génération automatisée échoue.

Cela compilera code1.c et code2.c dans un prog exécutable binaire, en chargeant les fichiers .h depuis. correspondant au nom de fichier libuse1.so *) et use2.

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

7
pts

8 ans plus tard ...

Je suis tombé sur cette question aujourd'hui et j'ai pensé que vous aimeriez peut-être jeter un œil à Visual C++ pour Linux .

Sorti en mars 2016, VC++ pour Linux vous permet de créer un projet dans VC++, puis de le créer sur une machine/machine virtuelle Linux à l'aide d'outils Linux natifs. De plus, vous pouvez également déboguer votre application depuis VS puisque les outils Linux permettent au débogueur VS de piloter GDB dans votre machine/VM Linux via SSH! !

On dirait que c'est presque exactement ce que @mspoerr demandait :)

6
Rich Turner

Quelle est la manière la meilleure et la plus simple de créer 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 bibliothèques multiplates-formes.

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

Et voilà!

4
dirkgently