当前位置: 技术问答>linux和unix
有关函数隐藏的问题
来源: 互联网 发布时间:2015-09-17
本文导语: 我要用c写一个so动态库, 由于这个库很大, ***代码不能都写在一个文件里***, 现在遇到一个问题就是, 只有少部分函数是写给别人调用的, 大部分函数都是内部在调用, 而我又不能声明成static, 不然我自己也调用不了...
我要用c写一个so动态库,
由于这个库很大, ***代码不能都写在一个文件里***,
现在遇到一个问题就是, 只有少部分函数是写给别人调用的,
大部分函数都是内部在调用, 而我又不能声明成static,
不然我自己也调用不了了. 请教各位大哥, 如何才能将
这些内部调用的函数隐藏起来.
由于这个库很大, ***代码不能都写在一个文件里***,
现在遇到一个问题就是, 只有少部分函数是写给别人调用的,
大部分函数都是内部在调用, 而我又不能声明成static,
不然我自己也调用不了了. 请教各位大哥, 如何才能将
这些内部调用的函数隐藏起来.
|
你使用两套header文件,一个你自己用的,一个是给其他人用的
然后编译完成以后用strip把so文件处理一下,这样的话你自己使用的header可以保证你正常调用你的函数,而给别人看得根本就没有那些函数的原型,这样别人就没办法调用了。而且还不能通过nm来看符号信息,并且运行的时候是正常的……
然后编译完成以后用strip把so文件处理一下,这样的话你自己使用的header可以保证你正常调用你的函数,而给别人看得根本就没有那些函数的原型,这样别人就没办法调用了。而且还不能通过nm来看符号信息,并且运行的时候是正常的……
|
别人看不到,loader也看不到了吧?那样还能加载的了吗?
|
提供api的头文件 和 lib库