Gcc 使用-fPIC和-s-可能相互矛盾?
在一个特定的项目中,我看到同时使用了以下编译器选项:Gcc 使用-fPIC和-s-可能相互矛盾?,gcc,aslr,fpic,Gcc,Aslr,Fpic,在一个特定的项目中,我看到同时使用了以下编译器选项: gcc foo.c -o foo.o -Icomponent1/subcomponent1 -Icomponent2/subcomponent1 -Wall -fPIC -s 此处一起使用的-fPIC和-s是否相互矛盾?如果没有,原因是什么?-s和-fPIC是用于不同目的的两个标志。它们并不矛盾 从 - 从可执行文件中删除所有符号表和重定位信息 -fPIC 如果目标机器支持,则发出与位置无关的代码,适用于动态链接并避免对全局偏移表大小的任何
gcc foo.c -o foo.o -Icomponent1/subcomponent1 -Icomponent2/subcomponent1 -Wall -fPIC -s
此处一起使用的
-fPIC
和-s
是否相互矛盾?如果没有,原因是什么?-s
和-fPIC
是用于不同目的的两个标志。它们并不矛盾
从
-
从可执行文件中删除所有符号表和重定位信息
-fPIC
如果目标机器支持,则发出与位置无关的代码,适用于动态链接并避免对全局偏移表大小的任何限制。此选项使m68k、PowerPC和SPARC有所不同
-s
做什么?它似乎没有记录。@ams,为什么,它在gcc手册页中<代码>-s从二进制文件中剥离重新定位部分。它不在我的GCC手册页上。我确实在链接器手册页上看到了这一点,它可能确实被传递了。