8
votes

Construire un exécutable Linux à l'aide de GCC

J'utilise Linux Ubuntu Intrepid Ibex et compilez des fichiers C ++ avec GCC, mais lorsque je compile, GCC effectue un fichier a.out , c'est-à-dire l'exécutable, mais comment je peux faire des exécutables Linux? Merci!


5 commentaires

Quelle est la différence pour vous entre un exécutable et un exécutable Linux?


Pouvez-vous clarifier? Les fichiers *. OUT sont les exécutables. Avez-vous besoin d'un autre type d'exécutables?


Nathan, le nom 'A.out' est un artefact historique, à partir des premiers compilateurs UNIX. Voir l'article Wikipedia sur le sujet: en.wikipedia.org/wiki/a.out


@notnoop: C'est juste a.out , pas *. out . (Salutations du futur!)


a.out doit déjà être exécutable. Pas besoin de faire autre chose. Il suffit de courir avec ./.out


3 Réponses :


3
votes

C'est l'exécutable. Si vous n'aimez pas A.out, vous pouvez passer un drapeau -o au compilateur. Si l'exécutable n'est pas marquée d'un bit exécutable, vous devez le faire:

chmod u+x ./a.out
./a.out


3 commentaires

Le fichier * .out est déjà un exécutable, mais comment je peux construire un exécutable Linux native Linux, les exécutables natifs Linux n'ont pas d'extensions.


À Linux, les extensions ne comptent pas. Vous pouvez simplement renommer le fichier à tout ce que vous voulez.


Lorsque le problème est la permission, je sais. Merci!



4
votes

Pour créer un exécutable appelé MyProg code> Vous pouvez appeler GCC comme ceci:

gcc -c -o myprog something.c


0 commentaires

21
votes

Cet exécutable est un "exécutable Linux" - c'est-à-dire qu'il est exécutable sur tout système de Linux récent. Vous pouvez renommer le fichier sur ce que vous souhaitez utiliser xxx

ou mieux encore, dites à GCC où placer son fichier de sortie à l'aide de xxx

À l'esprit que avant que les systèmes Linux vous permettront d'exécuter le fichier, vous devrez peut-être définir son "bit exécutable": xxx

N'oubliez pas que sur Linux, l'extension du fichier a très peu à voir avec ce qu'il est réellement - votre exécutable peut être nommé quelque chose , quelque chose.out ou même quelque chose.exe , et Tant qu'il est produit par GCC et que vous faites chmod + x dans le fichier, vous pouvez l'exécuter sous forme d'exécutable Linux.


3 commentaires

N'a-t-elle pas (en fait que le lieur informatique appelle) définit déjà le bit exécutable dans son fichier de sortie?


@FRESARB: Oui, l'appel de la GCC rend l'exécutable «votre nom de votre exécutable» par défaut.


Certains systèmes peuvent avoir une commande renommée , mais mv est le moyen habituel de renommer un fichier.