如何防止从静态链接库中导出符号?

我在Linux x86上创build了一个共享库。 在创build它,我已经静态链接在openssl。 OpenSSL只在内部使用,但我看到openssl符号已被导出。 这对于需要我的库和openssl的其他库会造成问题,因为错误的符号可以在运行时加载。 有没有办法阻止所有的openssl符号被导出,当我静态链接到我的共享库?

谢谢,迈克

架构上,共享对象(SO)和dynamic链接库(DLL)之间有什么区别?

ld找不到-l <库>

无法从可执行共享库中输出浮点数

如何在Linux上使用GDBdebuggingJava -JNI?

编译libstdc ++版本与系统版本

假设你使用的是gcc,当链接你的库时,设置-fvisibility = hidden并且在你的库源代码中,把所有你希望可见的函数标记为extern。 我认为这应该工作,只要openssl没有宣布自己的功能extern。

我认为,如果openssl已经声明了一些符号extern,你可以手动强制符号隐藏与编译指示。

还有其他的选择。 检查fvisibility部分中的gcc文档,以获取可用的完整说明。

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...