1
votes

Compiler le code C dans Visual Studio dans Windows pour Linux

J'utilise Visual Studio sous Windows pour développer des applications C de base. Je veux compiler mon code pour Linux, sans avoir besoin d'installer Linux sur ma machine. Est-ce possible ? Et comment?


12 commentaires

Vous ne pouvez pas compiler à partir de Visual Studio, mais vous pouvez l'utiliser comme éditeur de texte. Mais alors je ne vois pas vraiment la nécessité de le compiler dans Windows lui-même. À l'époque, on utilisait une connexion telnet à certains Solaris distants, puis on la compilait sur le système cible réel, avec un accès complet au shell Unix. Trop facile je suppose ...


@Lundin, je suis d'accord. Cependant, peut-être que Youssef n'a pas de machine avec un OS basé sur Linux et qu'il ne veut pas l'installer sur sa machine actuelle (partitionnement du meme et cetera). Donc, dans ce contexte, la question a du sens. La vraie question est une autre: pourquoi voulez-vous compiler pour Linux alors que vous n'avez pas de machine avec Linux?


@ Leos313 Je suis sûr qu'il y a quelque part sur Internet un "sandbox" Linux qui vous permet de jouer dessus.


@ Leos313, pour l'envoyer aux personnes qui ont Linux :)


oh, alors vous pouvez le tester sur votre machine mais ils DOIVENT compiler le code dans leur machine !! le code compilé ne peut pas toujours être envoyé pour être exécuté sur d'autres machines !! fais attention


Pourquoi doit-il être compilé dans leur machine? La plupart des logiciels disponibles sont déjà compilés pour différentes plates-formes et vous téléchargez généralement celui qui convient à votre plate-forme. C'est exactement ce que je veux. Actuellement, si j'envoie mon exe vers une autre machine Windows, cela fonctionne correctement. Je veux avoir un autre fichier compilé qui puisse être envoyé aux machines Linux et fonctionner correctement aussi.


@ Youssef13 par exemple, si les processeurs sont différents: si vous utilisez un x86 et que le programme doit fonctionner sur un système embarqué avec un processeur arm, vous serez confronté au problème. Ou, plus simplement, si vous avez un processeur 64 bits et que l'autre machine est 32 bits et cetera et cetera


cependant, lorsque vous rencontrez un problème comme celui-là, la compilation croisée est la solution


@ Leos313, les applications 32 bits ne devraient-elles pas fonctionner sur les machines 32 bits et 64 bits? Et de toute façon, comment puis-je compiler le programme pour différentes machines à partir de ma machine Windows? Comment puis-je effectuer une compilation croisée?


@ Youssef13, posez d'autres questions sur StackOverflow. Cependant, avec le mot-clé «compilation croisée», vous trouverez BEAUCOUP de choses sur le Web! Profitez! :)


en.wikipedia.org/wiki/Cross_compiler


@ Leos313, j'ai besoin d'une réponse spécifique à mon environnement.


3 Réponses :


1
votes

oui, c'est possible. Jetez un œil à cette question stackoverflow.

  1. Installez WLS sur votre ordinateur Windows
  2. Utilisez l'instruction gcc standard (ou, mieux, Makefiles et / ou CMake )

Disons que vous avez votre programme:

$ ./a.out
Hello Youssef

Ensuite, dans le dossier , exécutez:

$ gcc filename.c

puis exécutez-le:

//code within filename.c
#include <stdio.h>

int main(){
    printf("Hello Youssef\n");
    return 0;
}


2 commentaires

Cela sera-t-il compatible avec certaines fonctions qui, ASFAIK, sont spécifiques à MSVC?


@ Youssef13, la réponse dans le dernier commentaire suivant la question: vous ne pouvez pas envoyer le code compilé. Normalement, cela ne fonctionne pas. Au lieu de cela, testez sur votre machine et envoyez-leur le script pour compiler et exécuter le code sur votre machine



0
votes

Vous pouvez installer une VM (machine virtuelle) sur votre ordinateur Windows, puis installer Linux sur la machine virtuelle.

Remarque: la VM et Linux sont des téléchargements gratuits


1 commentaires

Cela signifie-t-il qu'il n'y a aucun moyen de le faire directement sur Windows?



1
votes

Vous devrez installer Linux quelque part. Si vous pouvez accéder à distance à une console Linux, VM ou WSL, à partir de votre machine Visual Studio, vous pouvez utiliser VS 2019 pour créer et déboguer la plupart des applications dans l'un de ces environnements, via le Cross Platform Connection Manager .

Les liens vers le blog et les documents suivants sont un bon point de départ.

De même, Visual Studio Code prend également en charge cela:

Cordialement,


0 commentaires