在使用GCC编译时,-DPIC
到底是做什么的,什么时候才是真正必要的?
我发现-fpic
和-fPIC
是生成独立于位置的代码。但是我找不到关于-DPIC
的任何东西。
发布于 2018-01-24 13:22:49
这只是一个预处理宏定义。GCC手册上说:
-D
NAME
将NAME
预定义为宏,并定义为1
。-D
NAME=DEFINITION
DEFINITION
的内容被标记化和处理,就像它们出现在#define
指令的翻译阶段3中一样。
如果您的源代码关心它是否被编译为独立于位置的代码,这可能是有用的。例如:
#ifdef PIC
/* ... */
#endif
https://stackoverflow.com/questions/48420552
复制相似问题