编译 GIT 时缺少 opensslconf.h

编译 GIT 时缺少 opensslconf.h

我决定将 git 源代码克隆到/usr/src最新的稳定版本中并签出(因为我目前使用的是 1.9.1)。在编译过程中,我收到了一些有关缺少依赖项的错误,并通过安装相应的开发包迅速修复了它们。

但是,这次我安装了最新的开发 openssl 库,但收到以下错误:

致命错误:openssl/opensslconf.h:没有此文件或目录

我知道这是一个缺少的依赖项,因此我继续安装 OpenSSL 的最新/开发包。

$ apt-cache search openssl | grep dev
$ apt-get install libssl-dev

太棒了,但是我仍然收到上述错误。快速的谷歌搜索让我找到了这个问题它仍然没有标记并且相当陈旧。


以下是执行的命令的完整列表:

ash$ sudo su -
root# apt-get install git
root# git clone https://github.com/git/git.git && cd git
root# git checkout 2.7.0
root# less INSTALL 
root# make prefix=/usr install install-doc install-html install-info
root# apt-get install libssl-dev
root# make prefix=/usr install install-doc install-html install-info
root# apt-cache search expat | grep dev
root# apt-get install lib64expat1-dev
root# make prefix=/usr install install-doc install-html install-info

答案1

当安装以下依赖项时,lib64expat1-dev许多包会被替换,其中一些是 64 位特有的。

这里的问题是opensslconfig.h已被移动到不同的目录,如下所示:

$ find / -type f -name opensslconf.h
/usr/include/x86_64-linux-gnu/openssl/opensslconf.h

而编译器正在其中搜索此文件/usr/include。因此,只需创建一个符号链接即可纠正此依赖关系。

$ cd /usr/include/openssl
$ ln -s /usr/include/x86_64-linux-gnu/openssl/opensslconf.h opensslconf.h

相关内容