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

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

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

$cc a.c  

但这给了我以下错误:

/usr/ucb/cc:  language optional software package not installed

如何编译 C 代码?

答案1

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

其次,所有当前的 Solaris 版本都附带了开箱即用的 C 编译器,但它所在的目录可能不在您的 中PATH/usr/sfw/bin并且名为gcc(Gnu 编译器)。请注意,Solaris 11gccPATH.

在 Solaris 10 上,使用

/usr/sfw/bin/gcc

或者

PATH=$PATH:/usr/sfw/bin
gcc

或者,您可能已经安装(或你可以安装) 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等)

答案2

不幸的是,sun 曾经提供过 /usr/ucb/cc;你可能会认为它与 SunOS 4 兼容;相反,它与一些非常旧的 4.2 版本兼容,但它还需要安装 SunPro(现在的 Solaris Studio)编译器。

这些编译器可以从以下位置下载

http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html

根据以下许可条款(引自上页)

为生产使用和商业应用程序的开发提供永久免费许可。

答案3

您的 Solaris 安装没有安装编译器。早在 1900 年代,Sun 对他们的 C 编译器收取了额外的费用,并提供了一个存根“cc”命令,只是为了提醒您编译器尚未安装。

要编译文件,您需要安装与您的操作系统和计算机硬件相匹配的相同 Solaris 版本(2.5.1?)和体系结构(SPARC/sun4m?)的编译器。

阅读更多内容SunFreeware.com对于安装在 /usr/local/ 下的免费软件。

如果您走开源/GNU 道路,您可能需要安装大量软件包来满足依赖关系,然后才能工作,但如果您有足够的磁盘空间,这可能是值得的。

Sun 的 SparCompiler/Forte/SunStudio 的旧版本可能很难为您的(据称)旧机器获得,因为它们通常使用节点锁定许可证进行许可,并且您将无法再购买那些过时软件包的许可证。

相关内容