使用 makeC++SharedLib 实用程序创建共享库
makeC++SharedLib 是用于链接 C++ .o 和 .a 文件的 shell 脚本。 它可以由未安装 XL C/C++ 的人员重新分发和使用。
对于编译器用户,建议您使用 -qmkshrobj 编译器选项而不是 makeC++SharedLib 命令。 使用此选项的优点包括自动处理链接时 C++ 模板实例化 (使用模板包含目录或模板注册表) ,以及与 -O5 选项兼容。
语法
参数
- 调用
- 是命令,前面是路径。 提供了以下命令:
- 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 ,则所有全局符号都会导出到列表
中,但具有隐藏或内部可见性属性的符号除外
。 - -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衰减 |
