gcc -DPIC有什么作用?

时间:2018-01-24 10:46:51

标签: gcc

使用GCC进行编译时-DPIC究竟做了什么,何时真的有必要?

我发现-fpic-fPIC会生成与位置无关的代码。但我找不到关于-DPIC的任何信息。

1 个答案:

答案 0 :(得分:3)

这只是一个预处理器宏定义。 GCC手册说:

  

-D NAME

     

NAME预定义为宏,定义为1

     

-D NAME=DEFINITION

     

DEFINITION的内容被标记化并处理,就像它们一样   在#define指令的翻译阶段三期间出现。

如果您的源代码关心它是否被编译为与位置无关的代码,那么这可能很有用。例如:

#ifdef PIC
   /* ... */
#endif