Optimization gcc vs.铿锵:符号剥离

Optimization gcc vs.铿锵:符号剥离,optimization,gcc,llvm,clang,strip,Optimization,Gcc,Llvm,Clang,Strip,gcc和AMD Open64 opencc都有一个-s选项来“剥离符号表和重新定位信息”。到目前为止,我还没有在Clang/LLVM中找到相同的选项。它存在吗?您可以使用binutils中的strip实用程序 实际上,llvm ld具有以下选项 -全部剥离,-s从可执行文件中剥离所有调试和符号信息 让它变小 -strip debug,-S将可执行文件中的所有调试信息剥离到 把它弄小一点 我也吃点东西: -带调试 此选项会导致opt在应用其他选项之前从模块中删除调试信息 优化。它本质上与-stri

gcc和AMD Open64 opencc都有一个
-s
选项来“剥离符号表和重新定位信息”。到目前为止,我还没有在Clang/LLVM中找到相同的选项。它存在吗?

您可以使用binutils中的
strip
实用程序

实际上,llvm ld具有以下选项

-全部剥离,-s从可执行文件中剥离所有调试和符号信息 让它变小

-strip debug,-S将可执行文件中的所有调试信息剥离到 把它弄小一点

我也吃点东西:

-带调试 此选项会导致opt在应用其他选项之前从模块中删除调试信息 优化。它本质上与-strip相同,但它确保了调试的剥离 信息是先做的


我认为您应该使用
objcopy
(来自binutils)来分离符号。这样,你就可以在你的某个用户发生崩溃时将它们放在手边,但你不必将它们与你提供给用户的二进制文件一起包含进去。请在LLVM bugzilla中填写PR。谢谢@安东好的,我已经提交了。我通过传递叮当声
-Wl,-s
有效地完成了这项工作。