Solaris 11 中用于编译 c 程序的 CC 编译器是什么。 make 文件指定类似“CC=cc -Xa -mt -xc99=no_lib”的内容

what is CC compiler in Solaris 11 for compiling c programs. make file specifies something like " CC=cc -Xa -mt -xc99=no_lib"

我的 make 文件中有这些行:

ifeq ($(SYSTEM),SOLARIS)
    # SUN Solaris 8 no c99
    ifeq ($(OSVER),510)
        CC=c99 -Xa -mt 
        LD=c99
    else
        CC=cc -Xa -mt -xc99=no_lib
        LD=cc 

我必须在 Solaris 11 中编译我的代码。以前有人在 Solaris 10 或 9 中编译过。不确定是哪个。

如果我执行 which CC 它给出 "no CC in user/bin" 错误。但是我的 Solaris 11 中安装了 GCC。我是否更改了 CC=GCC 或安装了新的 CC。如果我必须安装新的 CC,我必须安装哪个?

cc 通常指向系统默认编译器。在 Solaris 上,这将是 SolarisStudio 的一部分(可能安装也可能不安装)。

如果 cc 不可用(使用 which cc 进行测试),但 gcc 可用,则应调整您的 Makefile 以指向 gcc 位置。

您的 Makefile 现在可能如下所示:

ifeq ($(SYSTEM),SOLARIS)
    # SUN Solaris 8 no c99
    ifeq ($(OSVER),510)
        CC=c99 -Xa -mt 
        LD=c99
    else ifeq ($(OSVER),11)
        CC:=/usr/sfw/bin/gcc
    else
        CC=cc -Xa -mt -xc99=no_lib
        LD=cc