错误如下:
/usr/bin/ld: gfx.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make: *** [Makefile:4: project] Error 1
当我添加-fPIC
或-fPIE
时,没有任何变化。我知道gfx.o
库可以工作,因为它以前可以工作,并且当我在服务器上使用ssh时仍然可以工作。
制作文件如下:
project: project.c
gcc project.c gfx.o -lx11 -lm -fPIE -o -project
clean:
rm project
我试着在makefile中使用-fPIE
和-fPIC
。我还treid卸载和重新安装gcc和binutills,但没有任何效果。
1条答案
按热度按时间nlejzf6q1#
我发现把
-no-pie
放在Makefile中可以解决这个问题。我不知道是否有更持久和广泛的修复方法,但它确实有效。