linux - GNU 链接器 : alternative to --version-script to list exported symbols at the command line?

标签 linux linker symbols

在使用 GNU 工具链的 Linux 上,我知道如何使用版本脚本 (gcc -Wl,--version-script=symbols.map) 控制从共享库导出的符号,但我想列出导出的符号命令行代替。 IOW,我想要相当于

link /EXPORT:foo 

来自 MS 工具链。可能吗?

编辑:

我的问题可能不是很清楚:如果我有一个库 libfoo.so,我只想导出库 foo1 和 foo2,我可以创建一个版本脚本 foo.linux,如下所示

libfoo.so
{
global:
    foo1;
    foo2;
local:
    *;
}

然后做

gcc -shared foo.c -Wl,--version-script=foo.linux -o libfoo.so -soname libfoo.so

我希望能够做这样的事情:

gcc -shared foo.c -Wl,--export-symbol=foo1 -Wl,--export-symbol=foo2 -o libfoo.so -soname libfoo.so

最佳答案

我不确定您是否可以按照自己的意愿进行操作。 一种方法是使用您提到的链接器版本脚本。另一种方法是在您的源代码中添加 __attribute__ ((visibility("default"))) 用于任何您想要导出的内容,并使用 -fvisibility=hidden

编译所有内容>

关于linux - GNU 链接器 : alternative to --version-script to list exported symbols at the command line?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792195/

相关文章:

linux - 如何使别名在运行时工作?

linux - 库伯内斯/kubectl : unable to connect to a server to handle "pods"

linux - 使用 awk 搜索多个条件字符串

c++ - Visual Studio 链接错误 LNK2005 和 LNK2020

ios - 在 xcode 4.5 中保留未剥离的二进制文件的同时剥离符号

.net - 如何保存生成的符号文件?

linux - Ubuntu VM 不会无限期地在后台运行任务

c++ - 链接问题与 g++ 有关,但与 cc 无关

c - zlib 函数找不到的符号

c++ - 为VxWorks 5.5.1编译时如何减少目标文件大小?