zhaowcheng

Linux 上 ELF 文件依赖库的查找顺序

Linux 上的 2 种 ELF 文件类型:可执行文件(Executable file)和 共享对象文件(Shared object file),它们在执行期间需要通过 动态库链接器(ld.so)来查找其依赖的动态库文件,然而系统中可能在不同的目录下存在相同的动态库文件,那么执行时到底链接到哪个目录下的呢,本文将描述其在不同目录间的查找顺序。 如何识别 ELF 文件类型 Linux 上可...

fpm: 一个跨平台且支持多种包格式的打包工具

通过《一种让 Linux 上的 C/C++ 程序自带依赖库的打包方式》和《国产操作系统和 CPU 分类》两篇文章,介绍了一种针对 Linux 上的 C/C++ 程序的简化打包数量的方式,从一次打需要适配的操作系统和 CPU 组合数量的包,简化为 CPU 架构数 * 2 的数量,那么在准备编译环境的时候也就需要准备 CPU 架构数 * 2 个。 现在介绍一个打包工具 fpm ,这是一个 跨平...

国产操作系统和 CPU 分类

国产 操作系统 和 CPU 厂商数量繁多,令人眼花缭乱,如果你做一款 C/C++ 软件需要适配国产的各种操作系统和 CPU,打包时针对每一种操作系统和 CPU 的组合都要打一个包的话,那么每一次打包的数量可能会多达数十个,光是编译环境的准备都需要耗费大量的时间,这无疑是令人难以接受的。 但是万变不离其宗,如果经过仔细分析的话,会发现这些操作系统和 CPU 都是从现有的体系中衍生出来的,而不...

一种让 Linux 上的 C/C++ 程序自带依赖库的打包方式

Linux 上的 C/C++ 程序编译打包后拿到 同 CPU 架构 的其他 Linux 系统上运行时,通常会由于目标系统上缺少该程序所需的库而无法运行。 这个问题在一个连接上互联网的 Linux 系统上可以很容易的通过 yum 或 apt 安装缺少的依赖库来解决,但是如果是在一个无法使用 yum 和 apt 的内网系统上,则非常麻烦。 本文介绍一种打包方式,让打包后的程序自带依赖库,即使...