web-dev-qa-db-fra.com

alias pour les options de ligne de commande non reconnu

Je veux ajouter quelques drapeaux à ma compilation gcc, donc je les ai aliased

alias gcc_flags='-std=c99 -Wall -pedantic -Wextra -Wconversion'

et essayé de compiler comme ceci:

$ gcc gcc_flags file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl
gcc: error: gcc_flags: No such file or directory

Lors de la compilation sans l’alias, c’est-à-dire.

gcc -std=c99 -Wall -Wextra -Wconversion -pedantic file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl

la compilation fonctionne très bien. Pourquoi donc?


  • gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
  • alias gcc_flags='-std=c99 -Wall -pedantic -Wextra -Wconversion' apparaît sur ma liste d'alias
  • Version Ubuntu - Release: 14.04

À propos, n'est-il pas temps que gcc compile avec -std=c99 par défaut?

1
CIsForCookies

Les alias permettent à une chaîne de remplacer un mot par son utilisation comme le premier mot d'une simple commande. (man bash, c'est moi qui souligne)

Pour créer un alias pour gcc avec des indicateurs personnalisés, procédez comme suit:

alias gcc_flags='gcc -std=c99 -Wall -pedantic -Wextra -Wconversion'

Et lancez votre commande en tant que:

gcc_flags file_name.c -o object_name -L/usr/lib/i386-linux-gnu -lcurl

S'il y a des options que vous continuez d'ajouter à chaque fois et que vous souhaitez utiliser comme valeur par défaut, vous pouvez également ajouter un alias pour gcc lui-même, par exemple:

alias gcc='gcc -std=c99'

De cette façon, gcc sera toujours démarré avec ce drapeau. Si vous voulez ensuite ignorer la alias et l'utiliser sans cet indicateur, vous pouvez l'exécuter en tant que \gcc ou dans un nombre de différentes manières énumérées dans Comment puis-je exécuter la commande originale qui alias avec le même nom? .

2
dessert