ARM链接器错误消息“无源文件 - 无需执行的“无需要做”,在库中找不到现有符号吗?

发布于 2025-01-31 04:44:04 字数 2371 浏览 2 评论 0原文

我正在使用Ti的TMSP320F2888D,该TI配备了ARM皮层处理器。由于某种原因,即使将代码重置为较早的提交,我也无法在日食中构建我的项目。

清洁后尝试构建项目时,我会收到以下错误消息:

“在此处输入图像说明”

但是,缺少的符号位于库中,我包括我使用相应的链接器标志。

以下命令验证我的系统上存在符号和库:

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"

我是我AM不知道为什么链接器会抱怨缺少源文件,因为它们似乎在命令中提供了?

I am using a TMSp320F2888D from TI which feature an ARM Cortex processor. For some reason I am unable to build my project in Eclipse anymore even after resetting my code to an earlier commit.

When I try to build the project after I clean it I get the following error messages:

enter image description here

However, the missing symbols are located in a library that I include using the corresponding Linker flags.

The following commands verify that the symbols and library exist on my system:

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

I include the corresponding library and search path in Eclipse:

enter image description here

Looking at the Build Console, this is the last command issued before failure:

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"

I am not sure why the Linker would complain about missing source files since they seem to be provided in the command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷途知返 2025-02-07 04:44:04

我能够解决这个问题。问题在于编译器中设置了-n标志。这导致编译器生成汇编文件.asm而不是对象文件.obj。删除此标志后,项目正确构建。

I was able to resolve this issue. The problem was that the -n flag was set in the compiler. This caused the compiler to generate assembly files .asm instead of object files .obj. After removing this flag the project built correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文