ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
我们来看看这些具有相同成员但使用不同构建选项构建的目标文件库:
目标文件库名称 | 构建选项 |
---|---|
mylib_ARMv4_be.lib | --code_state=32 --silicon_version=4 --endian=big |
mylib_ARMv4_le.lib | --code_state=32 --silicon_version=4 --endian=little |
mylib_THUMBv4_be.lib | --code_state=16 --silicon_version=4 --endian=big |
mylib_THUMBv4_le.lib | --code_state=16 --silicon_version=4 --endian=little |
mylib_THUMBv7A8_le.lib | --code_state=16 --silicon_version=7A8 --endian=little |
使用库信息归档器,用户可以根据上面的库创建名为 mylib.lib 的索引库:
armlibinfo --output mylib.lib mylib_ARMv4_be.lib mylib_THUMBv4_be.lib
mylib_THUMBv7A8_le.lib mylib_ARMv4_le.lib mylib_THUMBv4_le.lib
现在,用户可以指定 mylib.lib 作为应用链接器的库。链接器使用索引库来选择要使用的库的适当版本。如果在 --run_linker 选项之前指定了 --issue_remarks 选项,链接器会报告选择了哪个库。
armcl-mv7A8 -me --mylib_pruv3_be main.c -z -l lnk.cmd ./mylib.lib
<Linking>
remark: linking in "mylib_THUMBv7A8_le.lib" in place of "mylib.lib"
armcl -mv5e --issue_remarks main.c -z -l lnk.cmd ./mylib.lib
<Linking>
remark: linking in "mylib_ARMv4_be.lib" in place of "mylib.lib"
在示例 2 中,没有针对 ISAv5 的库版本,但 ISAv4 库可用且兼容,所以使用了这个库。