簡體   English   中英

ARM 鏈接器錯誤消息“沒有源文件 - 無事可做”,在庫中找不到現有符號?

[英]ARM Linker error message "no source files - nothing to do", does not find existing symbols in library?

我正在使用 TI 的 TMSp320F2888D,它具有 ARM Cortex 處理器。 出於某種原因,即使將我的代碼重置為較早的提交,我也無法再在 Eclipse 中構建我的項目。

當我清理項目后嘗試構建項目時,我收到以下錯誤消息:

在此處輸入圖像描述

但是,缺少的符號位於我使用相應鏈接器標志包含的庫中。

以下命令驗證我的系統上是否存在符號和庫:

nm ~/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug/driverlib_cm.lib | grep Ethernet_rec
00000001 T Ethernet_receiveISR
00000001 T Ethernet_receivePacketCallback
nm ~/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug/driverlib_cm.lib | grep Ethernet_tran
00000001 T Ethernet_transmitISR

我在 Eclipse 中包含了相應的庫和搜索路徑:

在此處輸入圖像描述

查看構建控制台,這是失敗前發出的最后一條命令:

Building target: "enet_lwip_cm.out"
Invoking: ARM Linker
"/home/dvarx/ti/ccs1030/ccs/tools/compiler/ti-cgt-arm_20.2.4.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=none -me -O0 --opt_for_speed=0 --define=_FLASH --define=ccs -g --diag_warning=225 --gen_func_subsections=on --abi=eabi --ual -n -z -m"enet_lwip_cm.map" --heap_size=0x1000 --stack_size=2048 -i"/home/dvarx/ti/ccs1030/ccs/tools/compiler/ti-cgt-arm_20.2.4.LTS/lib" -i"/home/dvarx/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug" -i"/home/dvarx/ti/ccs1030/ccs/tools/compiler/ti-cgt-arm_20.2.4.LTS/include" -i"/home/dvarx/ti/ccs1030/ccs/tools/compiler" -i"/home/dvarx/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug" --reread_libs --warn_sections --xml_link_info="enet_lwip_cm_linkInfo.xml" --rom_model -o "enet_lwip_cm.out" "./comm_interface.obj" "./f2838xif.obj" "./fs.obj" "./httpd.obj" "./lwiplib.obj" "./main_tcp_interface_lwip.obj" "./pinout.obj" "./startup_ccs.obj" "./ustdlib.obj" "../2838x_flash_lnk_cm_lwip.cmd"  -l"/home/dvarx/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug/driverlib_cm.lib" -l"/home/dvarx/ti/C2000Ware_3_04_00_00_Software/driverlib/f2838x/driverlib_cm/ccs/Debug/driverlib_cm.lib" -llibc.a 
>> ERROR: no source files, nothing to do
Finished building target: "enet_lwip_cm.out"

我不確定為什么鏈接器會抱怨缺少源文件,因為它們似乎是在命令中提供的?

我能夠解決這個問題。 問題是在編譯器中設置了-n標志。 這導致編譯器生成匯編文件.asm而不是目標文件.obj 刪除此標志后,項目正確構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM