2011-12-20 54 views
0

任何警告或疑惑别名cc指的是在我的默认shell中的Clang - zsh(大概是通过编辑我的.zshrc文件),而在另一个shell(bash)中留下cc别名到gcc?Alias CC引用Shell中的Clang?

我觉得Clang更容易使用,主要是因为它的警告和错误消息比gcc的可读性和可读性要好得多。我将在下学期参加Unix编程课程(纯粹用C语言),我希望在提交作业前清除任何gcc -Wall警告。

我想要做的大部分工作是在我的默认shell(zsh)中使用Clang进行开发,使用引用编译器的makefile作为cc。一旦满意,我会在提交前通过bash(调用gcc作为编译器)运行一次,作为测试。用cc作为编译器提交的makefile会为教师调用gcc,使其对它们透明。我应该提交每个作业的makefile。

我知道这看起来像懒惰,因为我可以每次重新编辑makefile,但我试图留出更少的错误空间。

回答

5

只要运行

make CC=clang 

make CC=gcc 

或许

make CC='gcc -flto -Wall' 

(提醒:-flto应该在编译和链接时被传递)。

0

我不会评论这是否正常,但有一个更简单的方法。只需使用一个变量在Makefile到任何你想要的默认值是:

CC=gcc 

然后你就可以覆盖这个当你调用make:

make CC=clang 
+0

我相信,传递给'make'命令变量赋值在'Makefile'中覆盖那些行,所以'CC = gcc'已经足够'@ Makefile' – 2011-12-20 16:57:29

+0

@BasileStarynkevitch:我刚刚检查过,你绝对正确。 – 2011-12-20 17:04:08