首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何控制静态库中暴露的API集?

如何控制静态库中暴露的API集?
EN

Stack Overflow用户
提问于 2013-02-27 20:49:46
回答 1查看 56关注 0票数 2

我有一个静态库,它公开了100个API(即,100个API列在我随库提供的各种头文件中)。

比方说,许多不同的应用程序试图使用这个库,而每个应用程序只使用这100个API中的一个子集。例如:-1\f25 Application-1 \f6使用10个-1\f25 API-1\f6,-2\f25 Application-2 \f6使用-2\f25 20 -2\f25 API-2\f6等

在此场景中,我只希望向Application-1公开10个API,向Application-2公开20个API,即我不希望向所有客户公开所有API。

其中一个解决方案是,我根据应用程序名称添加一个宏,然后在代码中自己定制它。

还有其他可用的解决方案吗?在共享库的情况下,我可以使用映射文件控制公开的API集。有没有这样的解决方案可以应用于静态库?

EN

回答 1

Stack Overflow用户

发布于 2013-02-27 23:53:20

大多数编译器都有控制符号可见性的方法(例如,符号是否向链接器公开)。这里有一篇关于如何在GCC中做到这一点的文章:

http://gcc.gnu.org/wiki/Visibility

您应该能够很容易地找到其他编译器的相应文档。

在可移植代码中,这通常是使用每个编译器的宏来处理的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15112571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档