ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , C346BA02 , C348A01 , CS241C01-Q1 , CS241C05-Q1 , CS246C01-Q1 , CS348C02-Q1 , OMAP-L132 , OMAP-L137 , OMAP-L138 , S470AV336LYSQRB , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
链接器主要通过 TI_ARM_C_DIR 环境变量查找运行时支持库。通常, TI_ARM_C_DIR 中的其中一个路径名为 your install directory/lib,其中包含所有预构建的库以及索引库 libc.a。链接器会搜索 TI_ARM_C_DIR 来查找与应用程序的构建属性最为匹配的库。构建属性根据用于构建应用程序的命令行选项来间接设置。构建属性包含 CPU 版本等信息。如果明确指定了库名称(例如 -library=rtsv4_A_be_eabi),运行时支持函数会精确地查找对应的库。如果没有指定库名称,链接器会使用索引库 libc.a 来挑选合适的库。如果通过路径指定了库(例如 –library=/foo/rtsv4_A_be_eabi),则会假定对应库已经存在,而不会自动进行构建。
索引库描述了一组具有不同构建属性的库。链接器将会比较每个潜在库的构建属性与应用程序的构建属性,然后挑选最合适的库。有关索引库的详细信息,请参阅 ARM 汇编语言工具用户指南 中的归档器一章。
现在链接器已经决定了要使用的库,接下来它会检查 TI_ARM_C_DIR 中是否存在运行时支持库。该库必须与索引库 libc.a 位于完全相同的目录中。如果该库不存在,链接器会调用 mklib 来构建它。当该库缺失时,不管是用户直接指定了该库的名称,还是允许链接器从索引库中挑选最合适的库,都会出现这种情况。
mklib 程序会构建所请求的库,并将其置于索引库所在同一目录中的 TI_ARM_C_DIR 的“lib”目录部分中,以便用于后续编译。
要注意的事项: