使用 makeC++SharedLib 实用程序创建共享库

makeC++SharedLib 是用于链接 C++ .o.a 文件的 shell 脚本。 它可以由未安装 XL C/C++ 的人员重新分发和使用。

对于编译器用户,建议您使用 -qmkshrobj 编译器选项而不是 makeC++SharedLib 命令。 使用此选项的优点包括自动处理链接时 C++ 模板实例化 (使用模板包含目录或模板注册表) ,以及与 -O5 选项兼容。

语法

makeC++SharedLib 命令语法

读取语法图跳过可视语法图 调用 选项输入文件

参数

调用
是命令,前面是路径。 提供了以下命令:
  • makeC++SharedLib
  • makeC++SharedLib_r
  • makeC++SharedLib_r7
  • makeC++SharedLib128

可以指定以下一个或多个选项:

-o shared_file.o
将保存共享文件信息的文件的名称。 缺省值为 shr.o
-b
使用 ld 命令的 -b 绑定程序选项。
-Llib_dir
使用 ld 命令的 -L 选项将目录 lib_dir 添加到要搜索未解析符号的目录列表中。
-l图书馆
添加到要搜索未解析符号的库列表中。
-p 优先
指定文件的优先级。 priority 可以是从 -214782623 (最高优先级-首先初始化) 到 214783647 (最低优先级-最后初始化) 的任何数字。 将保留从 -214783648 至 -214782624 之间的数字供系统使用。 有关更多信息,请参阅 向对象分配优先级
-I 导入列表
使用 ld 命令的 -bI 选项来解析文件 import_list 中可由绑定程序解析的符号列表。
-E 出口清单
使用 ld 命令的 -bE 选项来导出 export_list 文件中的外部符号。 如果您没有指定 -E export_list ,则所有全局符号都会导出到列表 IBM 扩展中,但具有隐藏或内部可见性属性的符号除外IBM 扩展结束
-e 文件
-E export_list计算的列表保存在 文件 中。
-n 名字
将共享可执行文件的条目名称设置为 name。 这相当于使用命令 ld -e name
-w
从导出中排除弱符号。
-X 模式
指定应该创建的对象文件 makeC++SharedLib 的类型。 方式必须是 32(仅处理 32 位对象文件) 或 64(仅处理 64 位对象文件)。 缺省值为处理 32 位对象文件(忽略 64 位对象文件)。 您还可以使用 OBJECT_MODE 环境变量设置方式。 例如, OBJECT_MODE=64 会导致 makeC++SharedLib 处理任何 64 位对象并忽略 32 位对象。 -X 标志覆盖 OBJECT_MODE 变量。

输入文件可以是下列任何一项:

文件.o
是要放入共享库中的对象文件。
文件.a
是要放入共享库中的归档文件。

使用量

通过基于 Clang 的前端链接二进制文件时的要求

如果使用 makeC++SharedLib链接基于 Clang 的 IBM® XL C/C++ for AIX® 前端生成的二进制文件,那么除了需要的参数外,还必须手动指定 -lc++ 以使 makeC++SharedLib 实用程序正常工作。

如果链接基于 XL 的前端生成的二进制,那么此类需求不适用。

makeC++SharedLib-qmkshrobj的选项之间的映射

下表显示了 makeC++SharedLib-qmkshrobj之间的等效选项。
makeC++SharedLib 选项 -qmkshrobj 和相关选项
-p nnn -qmkshrobj=nnn
-e 文件名 -qexpfile=file_name
-E 导出文件 -bE :export_file
-I 导出文件 - bI:export_file
-x -qnolib
-x 32 -q32
-x 64 -q64
-n 切入点 -e 切入点
-w -qno衰减