Apache 模块的 ABI

ABI for Apache modules

apache 可执行文件使用四个主要集headers/libs编译: apache 头文件本身 apr-util 和 apr 头文件 我们正在使用的 mpm 系统(worker、prefork、event 是 unix.windows 上使用的三个,osx 还有其他的)

这些模块还使用同一组头文件进行编译。

是否可以为 apache 版本编译一个二进制模块,例如一个版本为 apache2.2 和另一个版本为 apache2.4 并在任何地方运行?我们不想为所有可以使用的库 (apr mpm) 的每个组合编译它。

每个 apache 版本您应该只需要一个二进制文件。您的模块可以动态查询 MPM,不应直接依赖其中一个 (ap_mpm_query)。 apr 和 apr-utility 具有非常好的前向兼容性。