0

在一个特定的项目中,我看到一次使用了以下编译器选项:

gcc foo.c -o foo.o -Icomponent1/subcomponent1 -Icomponent2/subcomponent1 -Wall -fPIC -s

-fPIC-s在这里一起使用是矛盾的吗?如果不是,为什么?

4

1 回答 1

1

-s并且-fPIC是用于不同目的的两个标志。它们并不矛盾。

来自gcc 手册

-s 从可执行文件中删除所有符号表和重定位信息。

-fPIC 如果目标机器支持,发出与位置无关的代码,适用于动态链接并避免对全局偏移表大小的任何限制。此选项在 m68k、PowerPC 和 SPARC 上有所不同。

于 2014-11-19T15:14:55.500 回答