5

我在 linux x86 上创建了一个共享库。在创建它时,我在 openssl 中进行了静态链接。OpenSSL 仅在内部使用,但我看到 openssl 符号已被导出。这会导致需要我的库和 openssl 的其他库出现问题,因为可以在运行时加载错误的符号。当我将它静态链接到我的共享库时,有没有办法防止所有 openssl 符号被导出?

谢谢,迈克

4

1 回答 1

0

假设您使用 gcc,在链接库时,设置 -fvisibility=hidden 并在库源中,将您希望可见的所有函数标记为 extern。我认为只要 openssl 没有声明自己的外部函数,这应该可以工作。

我认为如果 openssl 已经声明了一些外部符号,您可以手动强制使用编译指示隐藏符号。

还有其他选择。查看 fvisibility 部分中的 gcc 文档,以获得对您可用的内容的完整说明。

于 2010-04-07T21:04:34.117 回答