我尝试编译一些 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 11gcc
在PATH
.
在 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 的旧版本可能很难为您的(据称)旧机器获得,因为它们通常使用节点锁定许可证进行许可,并且您将无法再购买那些过时软件包的许可证。