程序加载动态加载So文件

忘世麒麟 2015-11-05 03:04:44
讨教一个经验.昨天依靠大牛的经验我解决了so的问题.但是我今天在整合程序的时候发现在生成可执行程序的时候:
g++ -g ./src/*.cpp -L sopath -lsoname -o main -ldl

其中我-lsoname (就是libsoname.so的缩写).
----------
问题来了:我每次编译出一个so我貌似都需要重新编译整个程序(就是 -lsoname 使得程序可以找到不同的so)。这样做意义就不大 了。项目应该是添加so配置好xml就可以动态加载新功能的。(我的xml配置没有任何问题)。

-----------
我的想法是这样:应该在我给libsoname起一个通用前缀的名字,比如libserverXXX.so 其中XXX是login request query等字符的占位符。然后我只需要编译一遍:g++ -g ./src/*.cpp -L sopath -lserver* -o main -ldl 这样我动态往里面加so的时候程序就可以探测到新加载的模块,也就是可以使用新功能。
-----------
我的实际情况是:貌似我做不出来。我的想法错哪里了?还是说我的解决思路本身就是错误的。
谢谢!
...全文
294 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-11-18
  • 打赏
  • 举报
回复
现在是开源时代。建议楼主直接提供所有源代码给客户。
赵4老师 2015-11-18
  • 打赏
  • 举报
回复
《COM本质论》
忘世麒麟 2015-11-18
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
我一般解决问题都是先用首先想到的笨办法趟一条能直达彼岸的路,然后再考虑是不是有更好的办法。
到时候我给专门写一篇博客,来告诉那些将来会遇到这问题的孩子怎么处理. 我觉得吧,要么就是我问错地方了,要么就是......
忘世麒麟 2015-11-06
  • 打赏
  • 举报
回复
看我眼神这么纯洁的份上就说说吧.
忘世麒麟 2015-11-05
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
我一般解决问题都是先用首先想到的笨办法趟一条能直达彼岸的路,然后再考虑是不是有更好的办法。
我暂时还有时间,所以不着急.
赵4老师 2015-11-05
  • 打赏
  • 举报
回复
我一般解决问题都是先用首先想到的笨办法趟一条能直达彼岸的路,然后再考虑是不是有更好的办法。
忘世麒麟 2015-11-05
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
如果是我,在统一的一个libserver.so中提供login、request、query等导出函数。
我也考虑过,不过这样是否太低级了?
赵4老师 2015-11-05
  • 打赏
  • 举报
回复
如果是我,在统一的一个libserver.so中提供login、request、query等导出函数。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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