MyException - 我的异常网
当前位置:我的异常网» Linux/Unix » 关于so文件:为什么替换了之后没有作用?该怎么解决

关于so文件:为什么替换了之后没有作用?该怎么解决

www.MyException.Cn  网友分享于:2013-02-13  浏览:13次
关于so文件:为什么替换了之后没有作用?
so文件的代码以及编译如下:
//mylib.h:

#ifndef   __PARAMDEF_H__
#define   __PARAMDEF_H__
#define   MYPARAM   1
#endif

//mylib.c:

#include   "mylib.h "
int   getParam()
{
                return(MYPARAM);
}

编译:
gcc   -c   mylib.c   -fPIC   -shared   -o   /lib/libmylib.so


使用mylib.so的程序myapp.c:
int   main()
{
int   i;

i   =   getParam();
printf( "param=%d\n ");
}

编译:
gcc   -c   -L   -lmylib   myapp.c   -o   myapp


现在的问题是这样:
我编译好之后执行,结果是param=1;
然后我修改mylib.h,将MYPARAM改为0,再编译mylib.so,这个时候再执行myapp,结果还是param=1;
也就是说,替换mylib.so没有作用,要重新编译myapp结果才是param=0。

我想问的是:so文件能不能像我设想的那样使用,也就是说,使用宏定义不同的so文件,调用的函数返回不同的结果?

谢谢!

------解决方案--------------------
你指定的库就是mylib,只要你的.so文件经过编译后,只要你的程序用的这个so,你就需要重新编译一下你的文件才可以!当然你说那个可以采取一个接口的方式进行向你SO传值来达到你的目的。
------解决方案--------------------
好像是需要重新编译myapp的吧.

------解决方案--------------------
编译myapp.c文件时,使用-share,这样才是动态连接,下次替换.so就起作用了。
但要注意,.so必须是LD_LIBRARY_PATH变量能搜索到的,要不然就使用dlopen之类的
函数。
------解决方案--------------------
对, 去掉-c.
------解决方案--------------------
祝贺dai_weitao(疯狂Linux C++社区) 穿五裤衩了,散点分吧!

文章评论

科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
代码女神横空出世
代码女神横空出世
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Java程序员必看电影
Java程序员必看电影
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员的鄙视链
程序员的鄙视链
鲜为人知的编程真相
鲜为人知的编程真相
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
 程序员的样子
程序员的样子
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
旅行,写作,编程
旅行,写作,编程
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
10个调试和排错的小建议
10个调试和排错的小建议
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
我的丈夫是个程序员
我的丈夫是个程序员
中美印日四国程序员比较
中美印日四国程序员比较
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
老程序员的下场
老程序员的下场
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何成为一名黑客
如何成为一名黑客
我是如何打败拖延症的
我是如何打败拖延症的
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序员必看的十大电影
程序员必看的十大电影
漫画:程序员的工作
漫画:程序员的工作
程序员都该阅读的书
程序员都该阅读的书
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员和编码员之间的区别
程序员和编码员之间的区别
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有