linux - 是否可以使用 gcc 导出一组符号?

标签 linux gcc compilation

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

最佳答案

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

{foo;goo;};

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

关于linux - 是否可以使用 gcc 导出一组符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52509114/

相关文章:

c - get_current_dir_name简单程序无法编译->库函数的隐式声明

交叉编译shellcode到arm

linux - 从标准输入读取粘贴命令

c - 在 C11 中使用 strdup

python - 为什么 virtualenv 不虚拟化任意目录?

c - 防止 GCC 优化掉对内存映射地址的循环写入

node.js - 错误 : The module . ..是使用 NODE_MODULE_VERSION 57 针对不同的 Node.js 版本进行编译的。此版本的 Node.js 需要

qt - 什么是 arm-linux-gcc 以及如何在 ubuntu 中安装它

linux - 上下文切换测量时间

c++ - 检查文件描述符中可用缓冲区字符的数量