避免在Linux上从可执行文件中导出符号

我发现当我将一个可执行文件链接到一个静态库(.a)时,静态库中的符号最终被可执行文件导出。 我想避免这一点,并输出任何东西。

我试过提供一个版本脚本,但似乎没有任何区别。 我的版本脚本的内容如下:

{ global: main; local: *; }; 

在静态库中链接时有没有办法从可执行文件中导出符号? 我不能重新编译静态库本身。

可执行文件默认情况下不会导出符号,除非您使用-Wl, – export-dynamic,否则不会这样做。 这只有在动态加载需要链接到主要可执行文件中的符号的库时才是必需的(如果你的库包含的类覆盖了exe中的虚拟方法,这在C ++中是一个常见的情况)

也许你会混淆导出带有调试符号的符号。 调试符号将生成调试器的利益(如果你不去除exe),但不需要运行。

使用strip

$男子条