索拉里斯10

索拉里斯10

这篇文章旨在记录如何在 Solaris 上获取开发主机。

“开发主机”是指拥有构建和编译 C 或 C++ 应用程序的所有适当工具的主机。

将编译器等开发工具放在主机上会显着增加该主机的攻击面,因此我认为您不应该将它们放在面向外部世界的主机上。它们还占用一些磁盘空间。

答案1

有两种可用于 Solaris 的 C/C++ 编译器。

  • GNU C/C++。这是 Linux 上最常用的编译器。它通常被称为“gcc”。它是一流的编译器,可用于 SPARC 上的 Solaris 和 X86 上的 Solaris。安装后,始终使用该命令执行该编译器gcc

  • 索拉里斯工作室。这是Oracle自己的编译器。它以前被称为Sun Studio。有人说它会生成比 gcc 更快的代码,尤其是在 SPARC 上。如果您选择此编译器,则在编译其他人的代码时要准备好应对一些警告。这是因为现在大多数代码都是使用 gcc 编译器开发的,而 gcc 编译器可以让 C/C++ 开发人员摆脱更多肮脏的伎俩,而无需将其标记为此类。另一方面,Solaris Studio 编译器对于糟糕的甚至非标准的编码风格则更加喋喋不休。只需忽略来自 Solaris Studio 编译器的此类警告即可。回到很多很多年前,这个编译器会花费你的钱。今天,它可以根据“Oracle Solaris Studio OTN 开发人员许可协议”从 Oracle 免费下载,该协议虽然不是完全“免费”许可”,但不会限制 99.9% 的用户。安装后,该编译器始终使用命令cc

对于大多数情况,GNU C/C++ 编译器就可以满足您的需要。

索拉里斯10

GNU C/C++

它已安装,但位于/usr/sfw/bin.人们最常犯的错误是假设它没有安装,因为他们在路径中找不到它。成为/usr/sfw/bin你的路径的一部分PATH 上的其他元素。

索拉里斯工作室

默认情况下不安装它。按照找到的说明进行操作这里。你做不是必须是 root 才能安装它。

其他

GNU make 也默认安装在 Solaris 10 中。它也存在/usr/sfw/bingmake.

索拉里斯 11

GNU C/C++

默认情况下不安装它。到目前为止,最简单的方法是使用 IPS 使用以下命令来安装它(同时是 root 或其他超级用户):

pkg 安装 pkg://solaris/developer/build/gnu-make
pkg 安装 pkg://solaris/developer/build/make
pkg 安装 pkg://solaris/developer/gcc-45
pkg 安装 pkg://solaris/system/header
pkg 安装 pkg://solaris/developer/build/autoconf
pkg 安装 pkg://solaris/developer/build/automake-110
pkg install pkg://solaris/developer/build/libtool # GNU libtool

这将为您提供构建各种开源软件包通常所需的所有工具。

请注意,某些软件包的名称本身包含版本号,例如gcc-45.您也许可以在软件包存储库中找到更高版本,例如对于 Solaris 11.2 Beta,您会发现可以选择 GCC 4.5、4.7 或 4.8。这同样适用于 automake,它现在也可在 v1.11 中使用。

索拉里斯工作室

默认情况下不安装它。按照找到的说明进行操作这里。您可以选择通过 IPS 安装(我认为这是最简单的,尽管它确实需要您添加另一个 IPS 存储库以及证书……所有这些都记录在链接中)。您还可以通过 tarball 安装,在这种情况下您不必是超级用户。




在 Solaris 上构建软件包时的一般建议

您从 Internet 上获取了一个软件包,现在想在 Solaris 上构建它?以下是一些一般性建议:

  • 始终使用GNU tar解包,不要使用 Solaris 自己的tar.所以做gtar xf foo.tar而不是tar xf foo.tar或其他什么。是的,在 99.99% 的情况下,Solaris 的 tar 都可以很好地工作,但两者之间存在一些细微的差异,例如 tar 文件是否包含软链接。

  • 使用GNU make而不是 Solaris'make例如,当您被告知这样做时:make all然后改为执行MAKE=gmake gmake all

  • 通常,使用 GNU C/C++ 构建而不是 Solaris Studio 会遇到更少的麻烦,因为 makefile 和编译选项等很可能仅使用 GNU C/C++ 编译器进行过测试。

  • 可能还有更多内容需要添加到此列表中。继续发表这些评论。

相关内容