18

我正在尝试在 RHEL 7.3 上构建 Apache Server v 2.4.38,我正在使用 apr 1.6.5、apr-util 1.6.1 和 pcre 8.42。

我正在运行以下命令

./configure  --with-included-apr --with-pcre=/data/abc/installed/pcre_installed --prefix=/data/abc/installed/httpd_installed  

make

运行“ make ”时我收到错误

/bin/sh /data/abc/installed/httpd-2.4.38/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/data/abc/installed/httpd-2.4.38/srclib/apr-util/include -I/data/abc/installed/httpd-2.4.38/srclib/apr-util/include/private  -I/data/abc/installed/httpd-2.4.38/srclib/apr/include    -o xml/apr_xml.lo -c xml/apr_xml.c && touch xml/apr_xml.lo
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
 #include <expat.h>
4

3 回答 3

18

从https://libexpat.github.io/下载 expat-2.2.6.tar.bz2 。

使用以下命令提取 expat

tar xvjf expat-2.2.6.tar.bz2 -C /path-to-dir

切换到解压的 expat 目录。

使用以下命令构建 expat

  1. ./configure --prefix=/path-to-expat-installation-dir

  2. 制作

  3. 进行安装

从源代码构建 Apache Httpd 时指定 --with-expat

./configure --with-included-apr --prefix=/path-to-apache-installation --with-expat=/path-to-expat-installation-dir

于 2019-01-29T03:21:07.277 回答
2

你有expat安装库吗?(因为那是它的expat.h来源。)

如果您无法将它全局安装到系统中,我确信 Apache 的./configure脚本也必须有一个选项来支持库的自定义位置。

于 2019-01-29T02:13:11.373 回答
0

对于其他遇到此问题的人:

OP 必须这样做,因为他们无权sudo访问。如果这样做,通常不需要expat手动下载源代码;通过包管理器安装更容易。expat除非您正在编译的软件需要比您的 RPM 存储库提供的更新版本。

因此,对于 RHEL 系列操作系统,您只需执行此操作sudo <dnf|yum> install expat expat-devel,然后继续您正在编译的内容。

于 2021-06-26T13:36:35.423 回答