我可以知道我是否可以从Solaris sparc服务器交叉编译Solaris x86库吗?
源代码主要是用C++(一些C语言)编写的。我需要使用Solaris C++编译器CC进行编译。我知道sparc和x86之间的一些编译或链接标志是不同的。我已经做了一次检查,以确保我使用的标志是通用的。
是否可以简单地将用sparc编译的库复制到x86?或者我需要在编译和链接过程中应用特定的标志?
谢谢,
Sun/Oracle Studio C++编译器不支持交叉编译。您需要使用另一个这样做的编译器,比如专门构建的gcc。
简单地复制库是不可行的——SPARC和x86是非常不同的指令集,两者之间没有二进制兼容性。
即使您可以在SPARC for x86上交叉编译Solaris库,但只安装x86编译器和库似乎要简单得多。这些库的相互依赖性可能非常复杂,以至于这样的项目可能无法运行。
是什么阻止您在x86 Solaris上下载和安装Studio软件?
Oracle Sun Studio C++编译器(CC)具有--xarch选项,具有多种体系结构。有:sparc,amd64,pentium_pro和各种扩展/修改。如果在单独的步骤中编译和链接,则应为编译器和链接器提供此标志。
您可以使用文件命令验证目标体系结构;例如:
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++手册页