问题描述
|
我是否可以从Solaris sparc服务器交叉编译Solaris x86库?
源代码主要是C ++(有些C)。我需要使用Solaris C ++编译器CC进行编译。我知道sparc和x86之间有些编译或链接标志是不同的。我已经进行了检查,以确保我使用的标志是通用的。
是否可以将在sparc中编译的库简单地复制到x86?还是在编译和链接期间需要应用特定标志?
谢谢,
解决方法
Sun / Oracle Studio C ++编译器不支持交叉编译。您将需要使用另一个编译器,例如专门构建的gcc。
简单地复制库是行不通的-SPARC和x86是非常不同的指令集,两者之间没有二进制兼容性。
,即使可以在x86的SPARC上交叉编译Solaris库,仅安装x86编译器和库看起来也要简单得多。这些库的相互依赖性可能非常复杂,以至于这样的项目可能无法正常工作。
是什么阻止您仅在x86 Solaris上下载和安装Studio软件?
,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 ++手册页