首页 > 解决方案 > 是否可以使用 gcc 导出一组符号?

问题描述

我现在有一个可执行文件。我想从其他进程调用这个可执行文件中的一些函数,所以我尝试使用“-fPIC -pie -rdynamic”编译可执行文件,并使用 dlopen() dlsym() 来调用这些函数。它按预期工作。但是“-rdynamic”会导出许多不需要的符号。我只想导出其中的一个子集。怎么做?

标签: linuxgcccompilation

解决方案


我找到了解决方案。使用 -Wl,--dynamic-list,symbol.list symbol.list 是当前路径中的一个文件,内容如下:

{foo;goo;};

这意味着我导出符号 foo 和 goo


推荐阅读