2011-12-20 3 views
0

Любые оговорки или gotchas to aliasing cc для ссылки на Clang в моей оболочке по умолчанию - zsh (предположительно, отредактировав мой файл .zshrc), оставив cc aliased в gcc в другой оболочке (bash)?Alias ​​CC, чтобы обратиться к Clang в оболочке?

Я считаю, что Clang намного проще в использовании, потому что его предупреждения и сообщения об ошибках являются более читабельными и понятными, чем сообщения gcc. Я буду зачислен в курс программирования Unix в следующем семестре (только на C), и я ожидаю, что он очистит любые предупреждения gcc -Wall перед отправкой задания.

То, что я пытаюсь сделать, это сделать большинство моих разработок, используя Clang в моей оболочке по умолчанию (zsh), используя make-файл, который ссылается на компилятор как на cc. После удовлетворения я буду запускать его один раз, в качестве теста, через bash (вызывая gcc как компилятор) перед отправкой. Представленный makefile с cc в качестве компилятора затем вызывает gcc для инструктора, делая его прозрачным для них. Я должен представить make-файлы с каждым заданием.

Я знаю, это просто похоже на ленивость, так как я могу повторно редактировать make-файл каждый раз, но я стараюсь оставить меньше места для ошибок.

ответ

5

Просто запустите

make CC=clang 

или

make CC=gcc 

или, возможно,

make CC='gcc -flto -Wall' 

(напоминание: -flto должен быть принят во время компиляции и во время компоновки).

0

Я не буду комментировать, хорошо это или нет, но есть более простой способ. Просто используйте переменную в вашем Makefile, чтобы все, что вы хотите по умолчанию быть:

CC=gcc 

Затем вы можете переопределить при вызове Произведено:

make CC=clang 
+0

Я считаю, что переменные задания, передаваемые 'make' команды line переопределяют те, что содержатся в 'Makefile', поэтому в этом случае' CC = gcc' достаточно в 'Makefile' –

+0

@BasileStarynkevitch: я только что проверил, и вы абсолютно правы. –