如何在 AIX 中使用 GCC 编译器链接 *.so 文件
Posted
技术标签:
【中文标题】如何在 AIX 中使用 GCC 编译器链接 *.so 文件【英文标题】:How to link *.so file in AIX with GCC compiler 【发布时间】:2016-12-26 14:54:02 【问题描述】:我试图在 AIX 机器上使用 GCC 编译器编译 C 代码时链接 *.so 文件,但无法这样做。使用传统的-L
和-l
选项,分别用于路径和.so 库名称,给出“找不到错误”,设置LD_LIBRARY_PATH
也没有帮助。我了解 AIX 中的链接选项不同。但我无法理解正确的选项。
你能用例子回答我的问题吗?
【问题讨论】:
【参考方案1】:使用选项-Wl,-brtl
可以使用*so*
共享对象。
编辑(第一个选项是-maix32
或-maix64
,具体取决于上下文):
gcc -maix32 -o example -Wl,-brtl example.c /var/tmp/lib/librequired.so
或
gcc -maix32 -o example -Wl,-brtl example.c -L/var/tmp/lib -lrequired
【讨论】:
我使用了这个选项,但得到“不是 coff 文件”错误。假设我在路径“/var/tmp/lib”中有一个库文件“librequired.so”和一个带有“example.h”头文件的 C 文件“example.c”。现在你能告诉我什么是完整的 gcc 命令。谢谢 @Sandeep 那么它可能不是一个 coff 文件。file /var/tmp/lib/librequired.so
说什么?以上是关于如何在 AIX 中使用 GCC 编译器链接 *.so 文件的主要内容,如果未能解决你的问题,请参考以下文章
AIX 的 XL 编译器的 -qfuncsect 选项的 gcc 等效选项是啥?
我们如何将 gcc-go 安装到 AIX 机器 power-pc-7 bigendian 64 位?