首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Linux上多个动态库和静态库的引用有关问题

2012-07-30 
Linux下多个动态库和静态库的引用问题在Linux下,比如静态库 A.a 库依赖于 B.a 那我在写makefile的时候要把

Linux下多个动态库和静态库的引用问题
在Linux下,比如静态库 A.a 库依赖于 B.a 那我在写makefile的时候要把B.a加到依赖库里吗? 如果A.a依赖于B.so(动态库)呢?

如果是A.so依赖于B.so呢? 

求赐教,十分感谢!

[解决办法]
不用 链接器会处理
[解决办法]
这个链接器可不会自动处理,需要自己添加到链接选项里
[解决办法]

探讨

这个链接器可不会自动处理,需要自己添加到链接选项里

[解决办法]
都需要,否则link的时候会undefined reference symbol
[解决办法]
探讨

引用:

这个链接器可不会自动处理,需要自己添加到链接选项里


不是吧 你使用GTK的库 而GTK使用Cairo GDK Mango 等库 你只需要添加`pkg-config --libs --cflags gtk+-2.0` 即可 用不着吧 GDK cairo Mango 等一并填上去

[解决办法]
按照lz的理解,需要
[解决办法]
1,静态库是怎么生成的?
答:.o文件打包生成的。
2,.o文件编译需要依赖定义吗?
答:不需要


3,动态库是怎么生成的?
答:.o文件链接生成的。根据2可知必须在链接时指定外部动态库。

4,使用静态库怎么用?
答:直接当作一堆.o参与链接即可,如果某.o依赖外部定义,此时链入即可。

5,使用动态库怎么用?
答:包含头文件编译自己的源码生成.o,链接时引入动态库提供定义。

6,动态库A还依赖动态库B,会影响使用动态库A的程序吗?
答:不会,程序只要链入动态库A即可,动态库A已经链接过,它知道去哪里找自己需要的B。
[解决办法]
静态a文件需要,动态so文件不需要
[解决办法]
探讨

1,静态库是怎么生成的?
答:.o文件打包生成的。
2,.o文件编译需要依赖定义吗?
答:不需要


3,动态库是怎么生成的?
答:.o文件链接生成的。根据2可知必须在链接时指定外部动态库。

4,使用静态库怎么用?
答:直接当作一堆.o参与链接即可,如果某.o依赖外部定义,此时链入即可。

5,使用动态库怎么用?
答:包含头文件编译自己的源码生成.o,链接时引入动态库……

热点排行