【问题标题】:getenv("cc") is returning NULL , why?getenv("cc") 返回 NULL ,为什么?
【发布时间】:2017-01-08 08:33:38
【问题描述】:

我正在学习 C 并且在 bash shell 中遇到了cc,即每当我make 我的源文件时,我都会看到这个命令。

因此开始理解它,从gcc --help开始但在帮助中找不到cc选项。于是开始上网,偶然发现了这个post。在第二个答案中,它说 cc 是一个环境变量,并且在 Linux 系统上通常指向 /usr/bin/gcc。

我使用的是 Linux 发行版,当我从 getenv("cc") 打印返回值时,我得到了 NULL。为什么会这样?

【问题讨论】:

标签: c linux bash gcc cc


【解决方案1】:

cc 通常不是环境变量。通常有一个符号链接/usr/bin/cc 指向gcc。

【讨论】:

    【解决方案2】:

    "cc" 是一个 c 编译器(可执行文件),它不暴露为环境变量 ... getenv 将打印环境变量

    【讨论】:

      【解决方案3】:

      引用:

      cc 是 C 编译器可执行文件或驱动程序的通用名称。它是 $(CC) make 变量的默认值。


      因为,正如ref 所说:

      如果在调用进程的环境中找不到指定的名字,则返回一个空指针。


      此外,如果你在终端上运行env,你会看到cc吗?并不真地!这就是为什么你会得到一个NULL 指针。因为它似乎不是一个环境变量..


      我相信你提到的cc 在你的makefile中是这样的:

      CC=gcc
      

      某事usual in Makefiles。

      【讨论】:

        猜你喜欢
        • 2015-12-09
        • 2012-03-18
        • 2022-12-26
        • 2016-12-28
        • 2015-11-25
        • 2015-07-04
        • 2019-09-29
        • 2015-02-25
        • 2015-10-21
        相关资源
        最近更新 更多