假如不想在 stack.h 中添加 #pragma implementation("stack.cc"),那么能够使用选项 -qtemplateregistry。下面说明了如何使用这个选项:
cd stack/xlC -c stack.cccd ../barxlC -c bar.cc -DREGISTRY -qtemplateregistry=../registrycd ../fooxlC -c foo.cc -DREGISTRY -qtemplateregistry=../registrycd ..xlC -o main main.cc -qtemplateregistry=registry stack/stack.o bar/bar.o foo/foo.o
有关 XL C/C 中的 C 模板的周详信息,请参阅 XL C/C for Linux Programming Guide。
运行时链接
运行时链接是在已开始执行程式之后分析尚未定义并且还没有延时的符号的能力。下面是用来构建名为 test 的可执行程式的 GCC 命令的顺序示例,这个可执行程式拥有共享库 libfoo.so 和 libbar.so。任何这些命令都能够用于运行时链接。
|
要执行 test,那么环境变量 LD_LIBRARY_PATH 必须包含 libfoo.so 和 libbar.so 所在的目录。也能够使用选项 -Wl,-rpath,而不用向 LD_LIBRARY_PATH 添加搜索位置。
在本例中,使用
gcc -o test test.c -L. -lfoo -lbar -Wl,-rpath=/home/app
其中 /home/app 是 libfoo.so 和 libbar.so 的位置。
对于 XL C/C ,必须用选项 -qmkshrobj 替代选项 -shared,如下所示:
xlc -c foo.c
xlc -c bar.c
xlc -o libfoo.so foo.o -qmkshrobj
xlc -o libbar.so bar.o -qmkshrobj
xlc -o test test.c -L. -lfoo -lbar
和 XL C/C on AIX 不同,使用 XL C/C on Linux 构建启用了运行时链接的可执行程式时,无需选项 -brtl。这是因为 XL C/C on Linux 使用 GNU 链接程式,因此,还能够在 XL C/C on Linux 中使用选项 -Wl,-rpath。和 GCC 相似,要执行应用程式,必须配置环境变量 LD_LIBRARY_PATH。
XL C/C 支持的 GCC 功能
对于 Linux on POWER,从 GCC 移至 XL C/C 通常很简单。为了帮助执行此任务,XL C/C 提供了选项 -qinfo=por,帮助筛选发出的诊断消息,从而只显示和可移植问题有关的那些消息。另外,XL C/C 还支持 GNU 到 gcc 和 gcc-c 的一部分扩展。有关受支持的功能连同被接受的但忽略语义的那些功能的完整列表,请参阅 XL C/C C for Linux on pSeries Compiler Reference。
要和 C 代码一起使用受支持的功能,则需要指定 -qlanglvl=extended 或 -qlanglvl=extc89。默认情况下,C 中任何受支持的 GNU gcc/gcc-c 功能都能被接受。
如本文“版本 7 中的新功能”一节所述,gxlc 和 gxlc 有助于最大程度地减少对使用 GNU 编译器构建的现有应用程式的 makefile 的更改。
可重新发布的库
XL C/C 提供下列可重新发布的库。根据应用程式,可能需要随应用程式一起提供这些库中的一个或多个。
libibmc .so仅由 C 程式使用。libxlsmp.so、libxlsmp_ser.so、libxlsmpdebug.so当-qsmp或-qsmp=omp选项有效时,需要使用这个库。
链接顺序
XL C/C 按下列顺序链接库:
- User .o 文档和库
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




