有关函数隐藏的问题

see22 2005-03-25 09:31:14
我要用c写一个so动态库,
由于这个库很大, ***代码不能都写在一个文件里***,
现在遇到一个问题就是, 只有少部分函数是写给别人调用的,
大部分函数都是内部在调用, 而我又不能声明成static,
不然我自己也调用不了了. 请教各位大哥, 如何才能将
这些内部调用的函数隐藏起来.
...全文
162 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
see22 2005-03-28
  • 打赏
  • 举报
回复
非常感谢!!!
nodummy 2005-03-26
  • 打赏
  • 举报
回复
完全没有问题,strip消除的符号产生给调试器看的,对库的加载没有影响……
nodummy 2005-03-26
  • 打赏
  • 举报
回复
嘿嘿,还是使用strip,可以指定删除某个符号/仅仅保留某个符号的

我用FreeBSD,可以这样保留一个符号
strip -K name libname
see22 2005-03-26
  • 打赏
  • 举报
回复
谢谢三位大哥, 可是如果我要是做出一个静态的.a来,
用strip的话, 就不行了
sharkhuang 2005-03-26
  • 打赏
  • 举报
回复
提供api的头文件 和 lib库
hs_guanqi 2005-03-26
  • 打赏
  • 举报
回复
别人看不到,loader也看不到了吧?那样还能加载的了吗?
nodummy 2005-03-25
  • 打赏
  • 举报
回复
你使用两套header文件,一个你自己用的,一个是给其他人用的

然后编译完成以后用strip把so文件处理一下,这样的话你自己使用的header可以保证你正常调用你的函数,而给别人看得根本就没有那些函数的原型,这样别人就没办法调用了。而且还不能通过nm来看符号信息,并且运行的时候是正常的……

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧