helloworld程序的交叉编译错误

helloworld程序的交叉编译错误

我已经使用本教程创建了 amhello-1.0.tar.gz 点击打开

现在我正在尝试进行交叉编译,但出现错误。我正在关注本教程 点击打开

输入命令后make出现错误

hp@ubuntu:~/amhello-1.0$ make
make  all-recursive
make[1]: Entering directory `/home/hp/amhello-1.0'
Making all in src
make[2]: Entering directory `/home/hp/amhello-1.0/src'
i586-mingw32msvc-gcc  -g -O2   -o hello.exe main.o  
main.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [hello.exe] Error 1
make[2]: Leaving directory `/home/hp/amhello-1.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hp/amhello-1.0'
make: *** [all] Error 2

答案1

看起来您正在为交叉编译重新使用与原始本机构建相同的构建目录。'make' 程序不知道您已经更改了工具链,并且不认为目标文件 (main.o) 已过期 - 因此它不会尝试重新编译它,而是直接跳到链接步骤 - 这会失败,因为它试图将本机 ELF 对象与外部 (mingw) 库链接起来。

尝试在之前执行make clean或以强制完全重新编译。rm src/*.omake

相关内容