web-dev-qa-db-fra.com

Comment exécuter le fichier .c à partir de la ligne de commande

Je commence à travailler avec des micro-contrôleurs et à les programmer en langage C.

Toute mon expérience de programmation est avec le langage Python.

Je sais que si je veux tester un script que j'ai écrit en python, je peux simplement lancer le terminal et taper "python" avec le chemin du fichier que je veux exécuter.

J'ai essayé une recherche sur le Web, mais la plupart ne semblaient pas comprendre ce que je demandais.

Comment exécuter c à partir du terminal?

5
Iam Pyre

C n'est pas un langage interprété comme Python ou Perl. Vous ne pouvez pas simplement taper du code C puis dire au Shell d'exécuter le fichier. Vous devez compiler le fichier C avec un compilateur C comme gcc puis exécutez le fichier binaire qu'il génère.

Par exemple, exécuter gcc file.c affichera un fichier binaire avec le nom a.out. Vous pouvez ensuite demander au shell d'exécuter le fichier binaire en spécifiant le chemin complet des fichiers ./a.out.

Modifier:
Comme certains commentaires et autres réponses l'ont indiqué, il existe des interprètes C qui existent. Cependant, je dirais que les compilateurs C sont plus populaires.

27
Peschke

Si vous avez un seul foo.c, voyez si make peut le compiler pour vous:

make foo

Aucun makefile ou quoi que ce soit nécessaire.

9
nperson325681

tcc -run file.c exécutera parfois un fichier .c. Si le fichier .c nécessite des bibliothèques supplémentaires, tcc -llib1 -llib2 ... -run file.c y arrivera. Parfois, cela ne fonctionne tout simplement pas. tcc n'est pas gcc.

Par ailleurs, vous pouvez mettre #!/usr/bin/tcc -run en haut d'un fichier .c, chmod +x le fichier et exécutez-le comme n'importe quel autre script. Lorsque le fichier .c fonctionne en tcc, cela se comporte très bien.

Les fichiers .c simples d'une personne nouvelle à C fonctionneront presque toujours.

7
Joshua

Je commence à travailler avec des micro-contrôleurs et à les programmer en langage C.

Dans la pratique, c'est une considération importante. Je suppose que votre microcontrôleur est quelque chose comme un Arduino (ou peut-être un Raspberry Pi).

En général, vous avez besoin de compilateur croisé . Vous allez ensuite compiler de manière croisée, sur votre système de bureau (par exemple certains Linux, qui est très convivial pour les développeurs; mais vous pouvez trouver des compilateurs croisés hébergés sur Windows ou MacOSX, pour Arduinos), votre code source en un exécutable ciblé pour votre microcontrôleur et transmettre ensuite l'exécutable binaire à votre microcontrôleur.

C est un langage de programmation difficile.

Dans de nombreux cas, vous pouvez compiler directement votre code sur votre bureau (n'oubliez pas d'activer tous les avertissements et les informations de débogage, par exemple gcc -Wall -Wextra -g avec [[# #]] gcc [~ # ~] ), testez la plupart sur votre bureau, puis adaptez-le et portez-le pour votre Arduino. Déboguer sur votre ordinateur portable ou de bureau un certain code est beaucoup plus facile que le débogage sur votre Arduino.

Vous compilerez plus tard le même code source pour votre microcontrôleur.

3