从Linux交叉编译到OpenWrt时,通用ELF(EM:62)中的重定位

3

尝试执行"make"命令。我已经检查了工具链目录,因为我已经成功编译了其他文件。想知道这个错误的原因,并且在哪里查找解决方案。

-rwxrw-rw- 1 ayaz ayaz  7246 Dec 17 23:33 csi_fun.c
-rwxrw-rw- 1 ayaz ayaz  2133 Dec 17 23:33 csi_fun.h
-rwxrw-rw- 1 ayaz ayaz  4488 Dec 17 23:33 csi_fun.o
-rwxrw-rw- 1 ayaz ayaz  3881 Dec 17 23:33 main.c
-rwxrw-rw- 1 ayaz ayaz  4024 Dec 17 23:33 main.o
-rwxrw-rw- 1 ayaz ayaz   399 Dec 22 15:46 Makefile
-rwxrw-rw- 1 ayaz ayaz 13580 Dec 17 23:33 recv_csi


ayaz@ubuntu:~/Atheros_CSI_tool_OpenWRT_UserSpaceApp_src-master/recvCSI$ make
mips-openwrt-linux-gcc csi_fun.o main.o -o recvCSI
/home/ayaz/openwrt/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.16/lib/gcc/mips-openwrt-linux-musl/5.3.0/../../../../mips-openwrt-linux-musl/bin/ld: csi_fun.o: Relocations in generic ELF (EM: 62)
/home/ayaz/openwrt/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.16/lib/gcc/mips-openwrt-linux-musl/5.3.0/../../../../mips-openwrt-linux-musl/bin/ld: csi_fun.o: Relocations in generic ELF (EM: 62)
csi_fun.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
make: *** [recvCSI] Error 1

1
你试过在运行make之前运行make clean吗?看起来像是某种库冲突。 - Ahmed Masud
是的,我尝试过“make clean”,结果相同。 - Nusrat
2个回答

3

重新安装工具链目录后问题得到解决。


1

如果您为主机系统编译了一个对象而不是目标系统(即忘记指定ARCHCROSS_COMPILER),则需要删除这些对象。make cleanmake distclean通常可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接