【问题标题】:cross compilation from Solaris sparc to Solaris x86从 Solaris sparc 到 Solaris x86 的交叉编译
【发布时间】:2011-09-02 05:27:04
【问题描述】:

请问能否从 Solaris sparc 服务器交叉编译 Solaris x86 库?

源代码主要是 C++(一些 C)。我需要使用Solaris C++编译器CC来编译。我了解 sparc 和 x86 之间的一些编译或链接标志是不同的。我进行了检查以确保我使用的标志是通用的。

是否可以简单地将 sparc 中编译的库复制到 x86 中?或者我需要在编译和链接过程中应用特定的标志?

谢谢,

【问题讨论】:

    标签: solaris cc


    【解决方案1】:

    Sun/Oracle Studio C++ 编译器不支持交叉编译。您需要使用另一个编译器,例如专门构建的 gcc。

    简单地复制库是行不通的——SPARC 和 x86 是非常不同的指令集,两者之间没有二进制兼容性。

    【讨论】:

      【解决方案2】:

      即使您可以在 SPARC for x86 上交叉编译 Solaris 库,只安装 x86 编译器和库似乎要简单得多。这些库的相互依赖关系可能非常复杂,以至于这样的项目可能无法运行。

      是什么阻止您在 x86 Solaris 上下载和安装 Studio 软件?

      【讨论】:

      • 您好 rchrd,感谢您的回答。我现在正在 x86 Solaris 上编译库。请求访问权限并在 x86 上安装编译器 Solaris 需要跨越一些官僚障碍...
      • 对于那些来这里的人:什么官僚障碍? Solaris Studio 可免费下载。只要您不将其用于开发,Solaris 本身也是如此。在你的 Windows 工作站上启动一个 VirtualBox,在上面安装 Solaris,你就有了一个 Solaris X86 开发主机!
      【解决方案3】:

      Oracle Sun Studio C++ 编译器 (CC) 具有适用于多种架构的 --xarch 选项。有:sparc、amd64、pentium_pro 和各种扩展/修改。如果您在单独的步骤中编译和链接,则应为编译器和链接器提供此标志。

      您可以使用 file 命令验证目标架构;例如:

      bash-3.2$ file /usr/bin/CC
      /usr/bin/CC:    ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, stripped
      

      详情请参考CC手册: Sun Studio 11 C++ Man Page

      【讨论】:

      • 您不能在 sparc 上使用与 x86 相关的 --xarch 并反过来使用。查看接受的答案。
      • 我检查了这个,发现它忽略了这个选项。感谢和抱歉不正确的答案。
      猜你喜欢
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多