【问题标题】:Linking with GCC doesn't detect -fPIC flag与 GCC 链接未检测到 -fPIC 标志
【发布时间】:2019-04-16 10:05:21
【问题描述】:

我正在尝试链接一些文件。这是我的命令:

gcc -T linker.ld -o Stack\ Berry.bin -ffreestanding -O2 -nostlib kernel.o boot.o -fPIC -lgcc

但是,我得到了这个错误:

/usr/bin/ld: boot.o: relocation R_X86_64_32 against `.multiboot' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output

我已经包含了-fPIC 参数,我是不是把它放错了地方?我试过把论点放在它编译的地方,但没有运气。我找不到任何关于这个标志的语法的东西。谢谢!

【问题讨论】:

    标签: ld fpic multiboot


    【解决方案1】:

    您正在将 -fPIC 传递给您的 linkage 命令。它是一个编译器选项, 因为您需要将源代码编译为位置无关的目标文件。

    从此命令中删除它并将其添加到您的编译命令中。

    -O2 同样是编译器,而不是链接器,选项。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2015-10-14
      • 1970-01-01
      相关资源
      最近更新 更多