前期说明
在Cygwin上编译生成头文件和库文件后,得到的文件如下:
1.head files 头文件
2.library 库文件
库文件: 把所用到的所有代码的实现打包成一个文件。库中的代码没有main函数(和可执行程序的区别)
Windows中为*.dll,而Linux中为*.so。
1)shared libraries 动态库
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
2)static libraries 静态库
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
可以看到,经编译产生的文件名后缀不太常见,经查找:
在linux环境下,c++编译得到库文件后缀包括:.so or .a or .la,
当然,linux下文件的类型是不依赖于其后缀名的,后缀及其含义:
.so 为共享库 : 动态库(shared library/shared object/dynamic link library),
.a为静态库 : archive / static library
.la为libtool自动生成的一些共享库,可以用vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式
file *.la
【以.0为后缀的文件】
0文件是Linux操作系统使用的链接文件,它存储了指向共享库(.SO文件)特定版本的链接,其后缀名具体取决于共享库版本,可能是“.0.0.0”或“.0.0.1”。0文件允许存储多个版本的库文件,而操作系统的动态库加载器仅可以引用和使用一个库文件。
【以.a为后缀的文件】
.a文件,是nix系统的静态链接库,里面包含了按照特定的结构组织起来的其它的一些文件。
注意,gcc会在静态库名前加上前缀lib,然后追加扩展名.a得到的静态库文件名来查找静态库文件。
得到了以上文件,要怎么使用呢?
库的使用
cd /cygdrive/E/PIHMRepo1/Lib