【问题标题】:Alias CC to Refer to Clang in a Shell?别名 CC 是指 Shell 中的 Clang?
【发布时间】:2011-12-20 16:51:59
【问题描述】:

在我的默认 shell - zsh(可能是通过编辑我的 .zshrc 文件)中为 cc 设置别名以引用 Clang,同时在另一个 shell (bash) 中将 cc 别名为 gcc 时有任何警告或陷阱吗?

我发现 Clang 更易于使用,主要是因为它的警告和错误消息比 gcc 更易读和易于理解。下学期我将参加一门 Unix 编程课程(纯 C 语言),并且预计在提交作业之前清除所有 gcc -Wall 警告。

我正在尝试做的是在我的默认 shell (zsh) 中使用 Clang 进行大部分开发,并使用将编译器称为 cc 的 makefile。一旦满意,我会在提交之前通过 bash(调用 gcc 作为编译器)运行一次,作为测试。提交的以 cc 作为编译器的 makefile 然后将为讲师调用 gcc,使其对他们透明。我应该在每个作业中提交 makefile。

我知道这似乎有点懒惰,因为我每次都可以重新编辑 makefile,但我试图减少出错的空间。

【问题讨论】:

    标签: c linux bash gcc clang


    【解决方案1】:

    直接跑吧

      make CC=clang
    

      make CC=gcc
    

    或许

      make CC='gcc -flto -Wall'
    

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

    【讨论】:

      【解决方案2】:

      我不会评论这是否可行,但有一种更简单的方法。只需在 Makefile 中使用一个变量来设置您想要的默认值:

      CC=gcc
      

      然后你可以在调用 make 时覆盖它:

      make CC=clang
      

      【讨论】:

      • 我相信传递给make命令行的变量赋值会覆盖Makefile中的变量赋值,所以在这种情况下CC=gccMakefile中就足够了
      • @BasileStarynkevitch:我刚刚查过了,你说的完全正确。
      猜你喜欢
      • 2017-08-15
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 2015-03-04
      • 2020-07-23
      • 2014-12-02
      相关资源
      最近更新 更多