【问题标题】:what is CC compiler in Solaris 11 for compiling c programs. make file specifies something like " CC=cc -Xa -mt -xc99=no_lib"什么是 Solaris 11 中用于编译 c 程序的 CC 编译器。 make 文件指定类似“CC=cc -Xa -mt -xc99=no_lib”
【发布时间】:2019-11-27 16:36:12
【问题描述】:

我的 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 它会给出“用户/bin 中没有 CC”错误。但是我的 Solaris 11 中安装了 GCC。我有更改 CC=GCC 还是安装了新的 CC。如果我必须安装新的 CC,我必须安装哪一个?

【问题讨论】:

  • 可执行文件区分大小写,可能CC 不存在,但cc 存在。 which cc 的输出是什么?
  • 嗨,蒂姆,感谢您的响应。哪个抄送哪个:没有抄送 (/usr/bin:/usr/sbin) 这是我得到的。
  • @Tim 这里大写的CC 是一个make 变量,按照惯例,它用于标识makefile 使用的C 编译器。例如:gnu.org/software/make/manual/html_node/Implicit-Variables.html

标签: c gcc solaris cc


【解决方案1】:

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 

【讨论】:

  • 谢谢。如果没有安装cc,如果我想安装我必须安装的版本。我在哪里可以得到?
  • 尝试关注here的话题。您可以在/usr/sfw/bin 找到编译器或安装从here 下载的SolarisStudio
  • 谢谢fiifim。我已经安装了 SolarisStudio。
猜你喜欢
  • 2020-02-16
  • 2018-10-21
  • 1970-01-01
  • 2017-06-17
  • 2018-06-05
  • 2014-06-17
  • 2014-02-22
  • 1970-01-01
  • 2020-01-22
相关资源
最近更新 更多