在Kali Linux上的gcc

问题是以下。 当我写在我的kali linuxterminal上的gcc print.s我得到以下错误:

 /usr/bin/ld: /tmp/cc45uyZj.o: relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status 
  1. 我在另一个Linux发行版中尝试了相同的function,并且完美运行。

  2. 添加-fPIC不起作用。 apt-get更新也不是。

  3. 如果你想看到代码: https : //github.com/NEGU93/Compilation.git在练习>第1部分。 当然是文件print.s(顺便说一句,当我做gcc的时候所有的.s文件都有类似的错误)。

我想在Kali发行版中丢失了一些东西,但我不知道它会是什么。

看起来你的发行版默认启用-pie (检查gcc -v输出),但是你的程序集不是位置独立的。 尝试在-fPIC下编译一个示例.c文件,看看它是如何产生调用的。 你的情况应该是

 call printf@PLT 

或者你可以尝试用gcc -no-pie编译。