多个.a文件怎么合并为一个.a或者.so
有没有办法将a.so和b.so合成为ab.so? 怎么有这么奇怪的需求?回复 #1 gisspirit 的帖子
有没有办法将a.so和b.so合成为ab.so?不行 楼上的,为嘛不行啊?
回复 #2 cjaizss 的帖子
我的代码中模块太多了,想把各个模块的so变成一个统一的so,省得麻烦回复 #4 gisspirit 的帖子
ld combines a number of object and archive files, relocates their data and ties upsymbol references. Usually the last step in compiling a program is to run ld.
回复 #6 liying_gg 的帖子
楼上的基础真扎实,佩服!特地请教另外一个问题:
能不能把x.a和y.a编译成为xy.a?
我曾经试过:ar cqs xy.a x.a y.a
但是,在main.cpp链接xy.a的时候,提示xy.a里面没有index?
回复 #7 gisspirit 的帖子
可以,不过得先解压出来.ols *.a|xargs -i ar -x -v {}|cut -d " " -f3|xargs -i ar -v -q newar.a {}
[ 本帖最后由 liying_gg 于 2009-12-28 15:30 编辑 ] 学习!:mrgreen:
回复 #8 liying_gg 的帖子
经过大家的帮助,我已经得到了结论:我的疑问是:一个完整的应用,有几个模块(a,b……)组成,a被b调用,b被应用层(m)调用。
为了将各个模块统一为一个库文件,各个模块的编译有如下两个选择:
1)把各个模块编译为静态库(liba.a,libb.a……),然后把各个静态库解开为.o文件,再打包为统一的库文件libab.a;
2)把底层模块编译为静态库(liba.a……),把上层模块编译为动态库(libb.so……),同时链接底层库,最后得到统一的库文件libab.so;
页:
[1]
2