关于运行库和开发库区别

很多初级开发者刚刚进行linux系统编程开发,不清楚运行库和开发库区别,这里特别说明一下:

  • 运行库,一般是二进制运行所需要的库,用ldd命令能够看到该二进制或so依赖哪些运行库,如果没有该运行库,会出现找不到该运行库错误;运行库有以下特征:
    1. 在包管理上,一般是直接包(package)命名,或package-libs命名;
    2. 在文件表现上,一般是libxxx.so.y命名,可以多个数字版本结尾,具体见autoconf手册;
  • 开发库,一般是二进制编译所需要的库,因在开发的时候需要,所以称之为开发库,有如下特征:
    1. 开发库以.so和.a文件形式存在,libxxx.so一般以软链接形式链接libxxx.so.y;
    2. 开发库还包括头文件(必须)、cmake宏(可选),m4宏(可选)和pc文件(可选)
    3. 在包管理上,一般是package-devel命名,有较大的包会将静态库、头文件以及动态库分开,分别是package-static、package-headers、package-devel

开发库一般比运行库大很多,一般精简情况下不需要安装开发库;

另外,还有一个库叫调试库,以package-debuginfo命名,当使用gdb等工具调试时,可以安装此库获得更详细的调试信息;

Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on October 27, 2020 1:26 PM.

解决protoc-gen-go-grpc program not found or is not executable问题 was the previous entry in this blog.

关于fedora33的内核升级引起的无法启动问题 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.