Question

Quand je compile un fichier .c en utilisant la commande cc, il crée un exécutable a.out. Je l'ai remarqué qu'il crée le fichier a.out dans mon répertoire courant. Y at-il un moyen de rendre le fichier a.out être créé dans le même répertoire que le fichier .c où je me trouve être sur le système?

par exemple si mon chemin actuel est ~/desktop et je tapez la commande:

cc path/to/my/file/example.c

Il crée le fichier a.out dans le répertoire ~/desktop. Je voudrais pour créer le fichier a.out dans path/to/my/file/a.out

Était-ce utile?

La solution

Vous devez utiliser le commutateur -o chaque fois que vous appelez cc:

cc -o path/to/my/file/a.out path/to/my/file/example.c

ou vous pouvez faire un script d'emballage comme ceci:

Mycc

#!/bin/bash

dirname=`dirname "$1"`
#enquoted both input and output filenames to make it work with files that include spaces in their names.
cmd="cc -o \"$dirname/a.out\" \"$1\""

eval $cmd

vous pouvez appeler

./mycc path/to/my/file/example.c

et, à son tour, appel

cc -o "path/to/my/file/a.out" path/to/my/file/example.c

Bien sûr, vous pouvez mettre Mycc en $ PATH afin que vous puissiez l'appeler comme:

mycc path/to/my/file/example.c

Autres conseils

Vous pouvez donner le « -o » drapeau pour définir le fichier de sortie. Par exemple:

cc path/to/my/file/example.c -o path/to/my/file/a.out

Oui, avec -o.

cc path/to/my/file/example.c -o path/to/my/file/a.out

Il peut être pas ce que vous cherchez, mais vous pouvez facilement rediriger la sortie d'une compilation en utilisant la siwtch de -o comme ceci:

cc -o /a/dir/output b/dir/input.c

Je ne sais pas, comment archieve, ce que vous voulez (remplacement automatique), mais je suppose que vous pouvez le faire avec un peu bash comme ceci: (je suis pauvre dans les scripts, non testé et peut-être tort):

i = "a/path/to/a/file.c" cc -o ${i%.c} $i

Il doit compiler un fichier spécifié dans i dans un fichier de sortie en même répertoire, mais avec le suffixe .c enlevé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top