正文

Linux下动态库只导出部分函数2009-07-09 15:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/miaowei/45071.html

分享到:

编译一个1.c文件:#include "stdio.h"#if defined(__GNUC__) && \        ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))#define NP_VISIBILITY_DEFAULT __attribute__((visibility("default")))#else#define NP_VISIBILITY_DEFAULT#endif#define NP_EXPORT(__type) NP_VISIBILITY_DEFAULT __typeNP_EXPORT(int) a(){printf("1.c i am a\0");return 0;}int b(){return 0;}我的目的是默认没有使用NP_EXPORT宏的函数都隐藏起来,即把b函数给隐藏起来,而a函数则导出去。我的编译步骤和指令如下:gcc -c 1.cgcc –fPIC -shared -fvisibility=hidden  -o 1.so 1.o编译后生成了1.so文件。我使用nm工具查看,这个时候就可以达到隐藏不必要的函数,而只是导出定义过的函数。

阅读(4881) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册