linux ar 静态包
举个例子,
需要编译一个静态库(libxx.a),其中使用了mysql的静态库(libmysqlclient.a).
成功得到了libxx.a后,给其他应用程序使用。
其他应用程序使用libxx.a的同时,还是必须得libmysqlclient.a。
而如果不是先打包libxx.a,而是直接编译成一个可执行程序的时候,即使没有libmysqlclient.a的时候,可执行程序也是可以运行的。
这是为什么呢?
我是这样理解的,是因为 ar 仅仅只是将.o文件打包成了libxx.a,里面没有包括有mysql的东东的。
所以其他应用程序要来使用libxx.a的时候,还是得自行准备libmysqlclient.a等用到的第三方库的。
各位大侠,是这样的吗?