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
將 C/C++ 程序作為單獨(dú)步驟進(jìn)行鏈接的一般語(yǔ)法如下:
| armcl --run_linker {--rom_model | --ram_model} filenames | |
| [options] [--output_file=name.out] --library=library [lnk.cmd] | |
| armcl --run_linker | 調(diào)用鏈接器的命令。 |
| --rom_model | --ram_model | 通知鏈接器使用 C/C++ 環(huán)境定義的特殊約定的選項(xiàng)。當(dāng)使用 armcl --run_linker 而不列出要在命令行編譯的任何C/C++ 文件時(shí),必須 在命令行上或鏈接器命令文件中使用 --rom_model 或 --ram_model。--rom_model 選項(xiàng)在運(yùn)行時(shí)進(jìn)行自動(dòng)變量初始化;--ram_model 選項(xiàng)在加載時(shí)進(jìn)行變量初始化。有關(guān)使用 --rom_model 和 --ram_model 選項(xiàng)的詳細(xì)信息,請(qǐng)參閱節(jié) 4.3.5。如果未能指定 ROM 或 RAM 模型,您將看到一條鏈接器警告,內(nèi)容為: |
| filenames | 目標(biāo)文件、鏈接器命令文件或存檔庫(kù)的名稱(chēng)。輸入文件的默認(rèn)擴(kuò)展名為 .c.obj(用于C 源文件)和 .cpp.obj(用于C++ 源文件)。必須顯式指定任何其他 擴(kuò)展名。鏈接器可以確定輸入文件是包含鏈接器命令的目標(biāo)文件還是 ASCII 文件。除非使用 --output_file 選項(xiàng),否則默認(rèn)輸出文件名為 a.out。 |
| options | 影響鏈接器處理目標(biāo)文件的方式的選項(xiàng)。鏈接器選項(xiàng)只能出現(xiàn)在命令行上的 --run_linker 選項(xiàng)之后,否則可以按任意順序出現(xiàn)。(《ARM 匯編語(yǔ)言工具用戶指南》中詳細(xì)討論了這些選項(xiàng)。) |
| --output_file= name.out | 對(duì)輸出文件命名。 |
| --library= library | 標(biāo)識(shí)包含 C/C++ 運(yùn)行時(shí)支持和浮點(diǎn)數(shù)學(xué)函數(shù)或鏈接器命令文件的合適的存檔庫(kù)。如果正在鏈接 C/C++ 代碼,必須使用運(yùn)行時(shí)支持庫(kù)。可以使用編譯器中包含的庫(kù),也可以創(chuàng)建您自己的運(yùn)行時(shí)支持庫(kù)。如果在鏈接器命令文件中指定了運(yùn)行時(shí)支持庫(kù),則不需要此參數(shù)。--library 選項(xiàng)的縮寫(xiě)形式為 -l。 |
| lnk.cmd | 包含鏈接器的選項(xiàng)、文件名、指令或命令。 |
編譯器創(chuàng)建的目標(biāo)文件的默認(rèn)文件擴(kuò)展名已更改。從 C 源文件生成的目標(biāo)文件具有 .c.obj 擴(kuò)展名。從 C++ 源文件生成的目標(biāo)文件具有 .cpp.obj 擴(kuò)展名。
當(dāng)將庫(kù)指定為鏈接器輸入時(shí),鏈接器僅包含和鏈接那些解析未定義引用的庫(kù)成員。鏈接器使用默認(rèn)分配算法將程序分配到內(nèi)存中??梢允褂面溄悠髅钗募械?MEMORY 和 SECTIONS 指令來(lái)自定義分配過(guò)程。有關(guān)信息,請(qǐng)參閱《ARM 匯編語(yǔ)言工具用戶指南》。
可以使用以下命令將包含目標(biāo)文件 prog1.c.obj、prog2.c.obj 和 prog3.cpp.obj 的 C/C++ 程序與名為prog.out 的可執(zhí)行目標(biāo)文件進(jìn)行鏈接:
armcl --run_linker --rom_model prog1 prog2 prog3 --output_file=prog.out
--library=rtsv4_A_be_eabi.lib