这是我的makefile:
task0 : main.o numbers.o add.o
gcc -m32 -g -Wall -o task0 main.o numbers.o add.o
main.o : main.c
gcc -g -Wall -m32 -ansi -c -o main.c
numbers.o : numbers.c
gcc -g -Wall -m32 -ansi -c -o numbers.c
add.o: add.s
nasm -g -f elf -w+all -o add.o add.s
clean :
rm -f *.o task0
这是终端输出:
gcc -m32 -g -Wall -o task0 main.o numbers.o add.o
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
make: *** [task0] 1 הלקת
有人可以解释一下lgcc是什么以及如何解决这个问题?
答案 0 :(得分:10)
(在评论中回答。见Question with no answers, but issue solved in the comments (or extended in chat))
@Basil Starynkevitch写道:
您应该安装gcc-multilib包
@Jekyll写道:
https://askubuntu.com/questions/250910/cross-compilation-issues-with-gcc-g