免费网站使用,牟长青 做网站推广的四个基本要点,电影网站标题怎么做流量多,ppt模板哪里找Linux下文件的类型是不依赖于其后缀名的#xff0c;但一般来讲#xff1a;.o 是目标文件#xff0c;相当于Windows中的.obj文件.so 为共享库#xff0c;是shared object#xff0c;用于动态连接的#xff0c;和dll差不多.a 为静态库#xff0c;是好多个.o合在一起#…Linux下文件的类型是不依赖于其后缀名的但一般来讲.o 是目标文件相当于Windows中的.obj文件.so 为共享库是shared object用于动态连接的和dll差不多.a 为静态库是好多个.o合在一起用于静态连接.la 为libtool自动生成的一些共享库vi编辑查看主要记录了一些配置信息。可以用如下命令查看*.la文件的格式$file *.lalibtool的工作原理libtool 是一个通用库支持脚本将使用动态库的复杂性隐藏在统一、可移植的接口中使用libtool的标准方法可以在不同平台上创建并调用动态库。可以认为libtool是gcc的一个抽象其包装了gcc(或者其他的编译器)用户无需知道细节只要告诉libtool需要编译哪些库即可libtool将处理库的依赖等细节。libtool只与后缀名为 .lo、.la 的libtool文件打交道。libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题将繁重的库依赖关系的维护工作承担下来从而释放了程序员的人力资源。libtool提供统一的接口隐藏了不同平台间库的名称的差异等细节生成一个抽象的后缀名为 .la 高层库 libxx.la(其实是个文本文件)并将该库对其它库的依赖关系都写在该 .la 的文件中。该文件中的 dependency_libs 记录该库依赖的所有库(其中有些是以 .la 文件的形式加入的)libdir 则指出了库的安装位置library_names 记录了共享库的名字old_library记录了静态库的名字。当编译过程到link阶段的时候如果有下面的命令$libtool --modelink gcc -o myprog -rpath /usr/lib –L/usr/lib –lalibtool会到/usr/lib路径下去寻找liba.la然后从中读取实际的共享库的名字(library_names中记录了该名字比如liba.so)和路径(lib_dir中记录了比如libdir/usr/lib)返回诸如 /usr/lib/liba.so 的参数给激发出的gcc命令行。如果liba.so依赖于库/usr/lib/libb.so则在liba.la中将会有 dependency_libs-L/usr/lib -lb 或者 dependency_libs/usr/lib/libb.la 的行如果是前者其将直接把“-L/usr/lib –lb”当作参数传给gcc命令行如果是后者libtool将从/usr/lib/libb.la中读取实际的libb.so的库名称和路径然后组合成参数“/usr/lib/libb.so”传递给gcc命令行。当要生成的文件是诸如 libmylib.la 的时候比如$libtool --modelink gcc -o libmylib.la -rpath /usr/lib –L/usr/lib –la其依赖的库的搜索基本类似只是在这个时候会根据相应的规则生成相应的共享库和静态库。注意(1) libtool在链接的时候只会涉及到后缀名为 .la 的 libtool文件实际的库文件名称和库安装路径以及依赖关系是从该文件中读取的。(2) 并不是所有的库都是用libtool编译的。参考