我有一个简单的共享库,当前使用以下命令在 Linux 上编译:
gcc -c -fPIC foo.c -o foo.o
gcc -shared -o foo.so foo.o
我需要向同事转发指令,以便在 AIX 上编译相同的内容。我不知道我的同事是否会在 AIX 上使用 gcc 还是本机编译器。
这些 gcc 指令也适用于 AIX 吗?如果不是,需要进行哪些修改? Linux gcc 版本是 4.4.7 任何人都可以提供使用本机 AIX 编译器的说明吗? xlC?
谢谢。
答案1
在 AIX 上,您可以有 3 个编译器:
- 海湾合作委员会
- 较新的 XL C/C++ 企业版
- 旧版 VisualAge C++ Professional
对于 GCC 2.x 后期以来,创建共享库的语法是:
gcc -shared -Wl,-soname,your_soname -o library_name file_list library_list
例子:
gcc -fPIC -g -c -Wall a.c
gcc -fPIC -g -c -Wall b.c
gcc -shared -Wl,-soname,libmystuff.so.1 -o libmystuff.so.1.0.1 a.o b.o -lc
对于上述 AIX 本机编译器,请参阅此页面以获取详细说明:
http://www.ibm.com/developerworks/aix/library/au-gnu.html
(请参阅 AIX 与 System V 系统上的共享库部分)