ZHCUAV8W january 1998 – 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
鏈接器主要通過 TI_ARM_C_DIR 環(huán)境變量查找運行時支持庫。通常, TI_ARM_C_DIR 中的其中一個路徑名為 your install directory/lib,其中包含所有預(yù)構(gòu)建的庫以及索引庫 libc.a。鏈接器會搜索 TI_ARM_C_DIR 來查找與應(yīng)用程序的構(gòu)建屬性最為匹配的庫。構(gòu)建屬性根據(jù)用于構(gòu)建應(yīng)用程序的命令行選項來間接設(shè)置。構(gòu)建屬性包含 CPU 版本等信息。如果明確指定了庫名稱(例如 -library=rtsv4_A_be_eabi),運行時支持函數(shù)會精確地查找對應(yīng)的庫。如果沒有指定庫名稱,鏈接器會使用索引庫 libc.a 來挑選合適的庫。如果通過路徑指定了庫(例如 –library=/foo/rtsv4_A_be_eabi),則會假定對應(yīng)庫已經(jīng)存在,而不會自動進(jìn)行構(gòu)建。
索引庫描述了一組具有不同構(gòu)建屬性的庫。鏈接器將會比較每個潛在庫的構(gòu)建屬性與應(yīng)用程序的構(gòu)建屬性,然后挑選最合適的庫。有關(guān)索引庫的詳細(xì)信息,請參閱 ARM 匯編語言工具用戶指南 中的歸檔器一章。
現(xiàn)在鏈接器已經(jīng)決定了要使用的庫,接下來它會檢查 TI_ARM_C_DIR 中是否存在運行時支持庫。該庫必須與索引庫 libc.a 位于完全相同的目錄中。如果該庫不存在,鏈接器會調(diào)用 mklib 來構(gòu)建它。當(dāng)該庫缺失時,不管是用戶直接指定了該庫的名稱,還是允許鏈接器從索引庫中挑選最合適的庫,都會出現(xiàn)這種情況。
mklib 程序會構(gòu)建所請求的庫,并將其置于索引庫所在同一目錄中的 TI_ARM_C_DIR 的“l(fā)ib”目錄部分中,以便用于后續(xù)編譯。
要注意的事項: