13.x链接器在使用独立makefile时不链接可执行文件

描述

发生以下错误是因为,就知识而言,链接器无法重新定位代码的某些部分:

mb-gcc -o fw_image1.elf new_test.o profinet.o ethernetip.o ethercat.o modbus.o webserver.o smtp.o -mlittle-endian -Wl,-EL -Wl, - gc-sections -Wl, - static -Wl, - oformat,elf32-microblazele -nostartfiles -nodefaultlibs -nostdlib -Wl,-L,.. / xilinx_iek_switch_install / lib -Wl, - start-group,-lSdaiPnOnly,-lextras,-ltarget,-lPROFINETStack, -lgcc, - end-group -Wl,-T,target.ld -Wl,-Map = ieksingle.map
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o):在函数`set_device_mode_offline'中:
c:\ cworkspace \ CASE_929382_Dirk_linker_error \ xilinx_lib \ xilinx \ SimpleDeviceAPI \ all_fpga_eCos_gcc \ mak \ release /../../../ sdai / protocol / user.c:2256:重定位被截断以适合:R_MICROBLAZE_32_PCREL_LO对象符号`user_sm_if_appl_get_alarm_ack_can_send'已定义在./xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)中的.text部分
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o):在函数`alarm_con'中:
c:\ cworkspace \ CASE_929382_Dirk_linker_error \ xilinx_lib \ xilinx \ SimpleDeviceAPI \ all_fpga_eCos_gcc \ mak \ release /../../../ sdai / protocol / user.c:2113:重定位被截断以适合:R_MICROBLAZE_32_PCREL_LO对象符号`user_sm_switch_1_4_auto_read_res'已定义在./xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)中的.text部分
../xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o):在函数`user_connect_append_slot_diff'中:
c:\ cworkspace \ CASE_929382_Dirk_linker_error \ xilinx_lib \ xilinx \ SimpleDeviceAPI \ all_fpga_eCos_gcc \ mak \ release /../../../ sdai / protocol / user_connect.c:1000:重定位被截断以适合:R_MICROBLAZE_32_PCREL_LO对象符号`user_util_find_module_list_element'已定义在./xilinx_iek_switch_install/lib\libSdaiPnOnly.a(pn_common.o)中的.text部分
collect2:ld返回1退出状态
make:*** [fw_image1.elf]错误1

在谷歌搜索后,我发现了一个建议:

一个人可以使用“-mlong-calls”

但是,这似乎不是MicroBlaze / mb-gcc的选项。

我能做什么?

要解决此问题,您需要使用14.2中的最新编译器重新编译所有内容,这样,您将不会收到“重定位被截断以适合:符号R_MICROBLAZE_32_PCREL_LO”消息,您将能够生成可执行文件。

仅在不重新编译库的情况下运行链接器不起作用。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:38:50 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它