ARM链接器错误消息“无源文件 - 无需执行的“无需要做”,在库中找不到现有符号吗?
我正在使用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:
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:
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我能够解决这个问题。问题在于编译器中设置了
-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.