很多初级开发者刚刚进行linux系统编程开发,不清楚运行库和开发库区别,这里特别说明一下:
- 运行库,一般是二进制运行所需要的库,用ldd命令能够看到该二进制或so依赖哪些运行库,如果没有该运行库,会出现找不到该运行库错误;运行库有以下特征:
- 在包管理上,一般是直接包(package)命名,或package-libs命名;
- 在文件表现上,一般是libxxx.so.y命名,可以多个数字版本结尾,具体见autoconf手册;
- 开发库,一般是二进制编译所需要的库,因在开发的时候需要,所以称之为开发库,有如下特征:
- 开发库以.so和.a文件形式存在,libxxx.so一般以软链接形式链接libxxx.so.y;
- 开发库还包括头文件(必须)、cmake宏(可选),m4宏(可选)和pc文件(可选)
- 在包管理上,一般是package-devel命名,有较大的包会将静态库、头文件以及动态库分开,分别是package-static、package-headers、package-devel
开发库一般比运行库大很多,一般精简情况下不需要安装开发库;
另外,还有一个库叫调试库,以package-debuginfo命名,当使用gdb等工具调试时,可以安装此库获得更详细的调试信息;