/usr/ucb/cc: 语言可选软件包未安装

use*_*164 3 c solaris

我试图编译一些 C 代码以从 shell 提示中获取目标文件:

$cc a.c  
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:

/usr/ucb/cc:  language optional software package not installed
Run Code Online (Sandbox Code Playgroud)

如何编译 C 代码?

jll*_*gre 9

首先,您应该/usr/ucb从 PATH 中删除,因为这个目录现在已经过时了。几十年前,它旨在简化人们从 SunOS 4 迁移到 Solaris 2 的过程,但如今已没有多大意义。特别是这个cc命令,它设置特定标志来编译 BSDish 代码。

其次,所有当前的 Solaris 发行版都带有一个开箱即用的 C 编译器,但它位于一个目录中,而该目录可能不在您的 中PATH,/usr/sfw/bin并命名为gcc(Gnu 编译器)。请注意,Solaris 11gcc在PATH.

在 Solaris 10 上,使用

/usr/sfw/bin/gcc
Run Code Online (Sandbox Code Playgroud)

或者

PATH=$PATH:/usr/sfw/bin
gcc
Run Code Online (Sandbox Code Playgroud)

或者,您可能已经安装(或者您可以安装)Solaris Studio 编译器(现在是 Oracle Developer Studio)。在这种情况下,它的路径是<installation-dir>/bin/cc(如:/opt/SUNWspro/bin/cc, /opt/SolarisStudio11/bin/cc,/opt/OracleDeveloperStudio12.5-OS-sparc-bin-bin/developerstudio12.5/bin/cc等)