定制动态链接和静态链接
来源:互联网 发布:大数据案例分析ppt 编辑:程序博客网 时间:2024/06/04 22:41
http://linux.chinaunix.net/bbs/viewthread.php?tid=1176141
谢谢各位回复,我已经找到答案了。
QUOTE:
1,库文件名为什么非要相同,不同文件名即可以解决问题
2,动态库和静态库的执行效率几乎相同,完全可以选 ...
bekars 发表于 2010-12-24 13:21
2,动态库和静态库的执行效率几乎相同,完全可以选 ...
bekars 发表于 2010-12-24 13:21
是可以用不同的文件名字,但是我的目的是想要知道根本的原因,而不是解决问题就行了。
至于为什么这么做,因为我目前做的一个项目中,需要连接一个库,这个库是他们提供的,在安装交叉编译环境的时候自动生成了lib*.so和lib*.a两种版本,这样我怎么能改个名字就行呢?
原来-Bstatic和-Bdynamic这两个链接器选项需要用gcc的-Wl,option来传递才行。
我最新写的Makefile和源代码.
Makefile:
- CFLAGS+=-DMYFLAG
- all:testapp
- testapp:test_all liba.so liba.a libb.so libb.a /
- test_static test_statica_staticb test_statica_dynamicb test_dynamica_staticb test_dynamica_dynamicb
- myliba.o:myliba.c
- mylib.o:mylibb.c
- test_all:main.c myliba.o mylibb.o
- gcc -o $@ $^
- liba.so:myliba.o
- gcc -shared -o liba.so myliba.o
- libb.so:mylibb.o
- gcc -shared -o libb.so mylibb.o
- liba.a:myliba.o
- ar -r liba.a myliba.o
- libb.a:mylibb.o
- ar -r libb.a mylibb.o
- test_static:main.c
- gcc -o $@ $< -L./ -static -la -lb
- test_statica_staticb:main.c
- gcc -o $@ $< -L./ -Wl,-Bstatic -la -lb -Wl,-Bdynamic
- test_statica_dynamicb:main.c
- gcc -o $@ $< -L./ -Wl,-Bstatic -la -Wl,-Bdynamic -lb
- test_dynamica_staticb:main.c
- gcc -o $@ $< -L./ -Wl,-Bdynamic -la -Wl,-Bstatic -lb -Wl,-Bdynamic
- test_dynamica_dynamicb:main.c
- gcc -o $@ $< -L./ -la -lb
- .PHONY:clean
- clean:
- rm *.o *.a *.so test*
- 定制动态链接和静态链接
- 静态链接 和 动态链接
- 动态链接和静态链接
- 动态链接和静态链接
- 动态链接和静态链接
- 动态链接和静态链接
- 静态链接和动态链接
- 动态链接和静态链接
- 动态链接和静态链接
- 静态链接和动态链接
- 静态链接和动态链接
- 静态链接和动态链接
- 静态链接和动态链接
- 静态链接和动态链接
- 动态链接和静态链接
- 静态链接和动态链接
- 动态链接和静态链接
- 静态链接和动态链接
- AIX版必读收藏贴
- VPN模块的分析
- 当你的程序在朋友的机器上显示丢失msvcr100d.dll的时候
- 内存分配
- ORA-12154: TNS: 无法解析指定的连接标识符(全)
- 定制动态链接和静态链接
- Call通话模块知识点
- 网页提取时遇到的小问题
- 批量添加登录账号
- Error: could not open `C:/Program Files/Java/jre6/lib/i386/jvm.cfg' 的处理方法
- 通过Curl、socket、file_get_contents三种方法使用POST提交数据
- ASPxTextBox 怎么不能跨多行
- HTTP协议header头域
- 从团购网的漏洞看网站安全性问题