在Oracle Solaris 11上安装GCC

19

我最近在虚拟机上安装了Oracle Solaris以测试一些代码,在安装gcc时遇到了困难,因为我不太清楚如何安装。我搜索了很多,但所有的信息都是关于Oracle编译器的,而我需要GCC。你有没有任何想法在哪里可以获取GCC或如何安装它?

谢谢。

9个回答

20

原始答案适用于Solaris 11 Express / 非官方版本 - 如果您今天使用完整版本的Solaris 11.x进行此操作,请像xavier's响应中所示使用pkg install命令。

从终端运行此命令以安装GCC。

对于GCC 3.4.x

pkg install gcc-3

对于 GCC 4.5.x

pkg install gcc-45

对于GCC 4.7.x版本

pkg install gcc-47

对于GCC 4.8.x版本

pkg install gcc-48

gcc 命令应该已经位于您的路径 /usr/bin/gcc 中,这是一个符号链接。


旧回答 Solaris 11 应该已经在 /usr/sfw/bin/ 中安装了 gcc,但它可能不在您的 PATH 中。请在提示符下尝试以下操作:/usr/sfw/bin/gcc


3
不,那里没有,我已经检查过了,刚刚又检查了一次,我还运行了一个搜索命令。 - killercode
10
要安装该软件包,请使用命令 sudo pkg install gcc-3。 如果您使用命令 pkg search gcc,可以找到该软件包的名称。 - alanc
我确实需要安装编译器,但不需要更改我的PATH变量。 - Alexis Wilke
1
这个答案是不正确的(但如果它是针对当时的Solaris 11的预发布版本编写的,可能是正确的,我不知道?)。无论如何:在Solaris 11上,gcc不在/usr/sfw/bin中。你把它和Solaris 10混淆了。 - peterh
@peterh 在这个问题被提出的时候,Solaris 11还没有发布,只有Solaris 11 Express或者我可以访问的一些预发布版本,基本上是带有一些中间过渡功能的Solaris 10。 - wkl
显示剩余4条评论

16

pkg install gcc-45 也会安装 system/header,因此不需要第二个命令。 - glebd
我在OpenIndiana上使用第一个命令时没有得到system/header,所以非常感谢您提供的第二个命令。 - user7610

3

只需从gcc官网下载,跟随其中一个镜像链接获取最新的二进制包(以.tar.gz或tar.bz2格式),并按照传统步骤进行构建:

  1. ./configure --<> // 给出你的选项
  2. make
  3. make install

好消息是您可以自定义所需的内容,并始终保持最新状态,而坏处是您可能会失去使用mdb/adb调试的能力——我们正在面对最新的GCC 4.6.x时遇到此类问题。


1
@AlexisWilke 我们的 Solaris 服务器默认安装了 /usr/sfw/bin 目录下的 GCC,至少可以用来编译一些东西。 - Fei
有趣。我在虚拟机中从 CD 安装了 Solaris,但 /usr/sfw 目录不存在。birryree 在他的回答中也提到了这个目录... 但我看不到它,现在仍然看不到! - Alexis Wilke
1
Alexis - 自从90年代中期以来,GCC就可以在没有编译器的情况下进行构建。这很慢,也很复杂。任何好的编译器都可以从更低级别的工具(如bison、yacc、ar等)进行引导。 - him

2

我的Solaris 2.11无法访问互联网 :/

以下方法适用于我:

(1) 我使用这个链接作为指南
(2) 从我的Windows机器上,在它们的镜像站点之一下载gcc,我使用的是这里,通常越接近越好
(3) 使用WinSCP将gcc-9.2.0.tar.gz上传到目标/tmp目录中
(4) tar -xvf gcc-9.2.0.tar.gz
(5) cd gcc-9.2.0
(6) mkdir /usr/local/gcc
(7) cd /usr/local/gcc
(8) /tmp/gcc-9.2.0/configure -v --program-suffix=9.2

此时,您可能会遇到以下错误:
构建GCC需要GMP 4.2+、MPFR 2.4.0+和MPC 0.8.0+。

(9) 手动下载所需文件此处
注意:要知道需要哪些文件,请检查contrib/download_prerequisites
(10)将(9)中的文件复制到/tmp/gcc-9.2.0中
(11)解压缩,然后创建快捷方式:ln -s gmp-6.1.0 gmp,ln -s mpc-1.0.3 mpc,ln -s mpfr-3.1.4 mpfr,ln -s isl-0.18 isl
(12)/tmp/gcc-9.2.0/configure -v --program-suffix=9.2 --enable-languages=c,c++ -v
(13) nohup gmake & (此时需要一些时间...我的花了约6个小时。如果可以,请使用-j选项使其更快)
(14) gmake install
(15) /usr/local/bin# ./gcc9.2 --version
gcc9.2 (GCC) 9.2.0 Copyright (C) 2019 Free Software Foundation, Inc.

完成!:-)


2

Solaris 10及之前版本:

/usr/sfw/bin/gcc可用。

Solaris 11:

使用命令pkg install gcc-3安装。


2
pkg install gcc 

对我很有效

这将在您的计算机上安装整个gcc集合。无论如何,这是必需的。


1

我会引用unix.stackexchange.com上的答案。

在Solaris 11上,默认情况下未安装gcc。通常,您不仅需要编译器本身,还需要构建从某个地方以源代码格式下载的Solaris开源软件所需的所有工具。

到目前为止,最简单的方法是使用IPS使用以下命令进行安装(同时作为root或其他超级用户):

pkg install pkg://solaris/developer/build/gnu-make \
            pkg://solaris/developer/build/make \
            pkg://solaris/developer/gcc \
            pkg://solaris/system/header \
            pkg://solaris/developer/build/autoconf \
            pkg://solaris/developer/build/automake

(这里我使用了完全限定的包名,但实际上并不是必要的)

请注意,一些软件包在官方仓库中有多个版本可用。如果您只引用 developer/gcc,则在撰写本文时将获得 GNU C v4.8.2,但您也可以明确要求使用先前的版本,例如通过使用包名称 developer/gcc-45


1

你可以从OpenCSW安装gcc 4.3:

pkg-get -i gcc4code gcc4g++

在安装后,我还必须手动运行mkheaders。


gcc-4.6.2现在可以从不稳定的目录中获取。 - automaciej

1
我曾有相同的问题,“pkg install gcc-3”对我有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接