我在区分“-fno-pie”和“-no-pie”之间没有找到任何有用的信息。它们是gcc标志还是ld标志?它们是否都是必要的?请注意,以下是一段使用这些行的makefile代码:
因此,它使用gcc进行链接,而不是直接调用ld,但我不理解标志之间的差异以及它们是否都对编译和链接阶段必要。
CC = @gcc -fno-pie -no-pie
LD = @gcc -fno-pie -no-pie
因此,它使用gcc进行链接,而不是直接调用ld,但我不理解标志之间的差异以及它们是否都对编译和链接阶段必要。
-fpie
是一个“代码生成选项”(就像大多数-f
选项一样),而-pie
是一个“链接选项”(不影响生成的汇编代码,只是由编译器驱动程序传递给链接器)。 - amonakovCC = @gcc -fno-pie
和LD = @gcc -no-pie
,对吗?所以在这两行脚本中我不需要两者都有。 - Francesco