Solaris Studio 链接到特定的 libc.so 版本
我想为具有旧版Solaris (libc.so SUNW_1.22.4) 的系统编译/链接新的Solaris 版本(libc.so SUNW_1.22.6)。如何指定链接器(在新版本上)应构建使用旧版(1.22.4)libc.so 的二进制文件?
i want to compile/link on a new solaris version (libc.so SUNW_1.22.6) for a system with an older solaris (libc.so SUNW_1.22.4). How can I specify that the linker (on the new version) should build a binary that uses the older (1.22.4) libc.so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一般来说,UNIX 系统支持向后兼容性(在旧系统上构建的程序可以继续在较新的系统上运行),但反之则不然:在较新的系统上构建的程序可能无法在较旧的系统上运行。
因此,请在您要支持的最旧的操作系统版本上构建您的程序。
您将需要一个“新 Solaris -> 旧 Solars”交叉编译器。 GCC 可以针对此类交叉编译进行构建,但这并不是一件小事。在旧系统上构建通常是更简单的方法。
In general, UNIX systems support backward compatibility (a program built on an older system continues to work on a newer system), but not the opposite: a program built on a newer system may not work on an older system.
For this reason, build your program on the oldest OS release you are going to support.
You would need a "new Solaris -> old Solars" cross-compiler for that. GCC can be built for such cross-compilation, but this is not trivial. Building on an older system is usually much simpler approach.
不要调用 SUNW_1.22.4 中未包含的任何函数。链接器根据链接到的函数记录最小依赖关系。
Don't call any functions that aren't in SUNW_1.22.4. The linker records the minimum dependency based on the functions linked to.