找不到 opensslconf.h

Kei*_*tes 16 compiling openssl

我正在尝试构建 znort987 的解析器,并且已经执行了sudo apt-get libssl-dev. 我可以在其中看到各种与 ssl 相关的头文件,/usr/include/opensslopensslconf.h在 openssl 文件夹中丢失了,并且 make 命令引发了错误:

 make: *** No rule to make target `/usr/include/openssl/opensslconf.h', needed by `.objs/rmd160.o'.  Stop.
Run Code Online (Sandbox Code Playgroud)

我在 32 位 AMD 笔记本电脑上使用 Ubuntu 14.04。

更新:我执行了以下操作来清理我的安装:

sudo apt-get remove libssl-dev build-essential g++-4.4 libboost-all-dev libsparsehash-dev git-core perl
sudo apt-get install libssl-dev build-essential g++-4.4 libboost-all-dev libsparsehash-dev git-core perl
git clone git://github.com/znort987/blockparser.git
cd blockparser
make
Run Code Online (Sandbox Code Playgroud)

现在我得到:

/usr/include/openssl/e_os2.h:56:33: 致命错误: openssl/opensslconf.h: 没有那个文件或目录

小智 11

如果您在 64 位系统上构建并且您的目标是 32 位,则以下命令为我解决了这个问题:

sudo apt-get install libssl-dev:i386
Run Code Online (Sandbox Code Playgroud)

  • 你需要先用`sudo dpkg --add-architecture i386`激活这个架构 (3认同)

小智 3

已执行 sudo apt-get libssl-dev。我可以在 /usr/include/openssl 中看到各种与 ssl 相关的头文件,但 openssl 文件夹中缺少 opensslconf.h 并且 make 命令会引发错误...

听起来包裹有缺陷。

<openssl/opensslconf.h>由 OpenSSL 的命令创建Configure。它应该包含在发行版文件中。我能找到的最早的提及是版本 0.9.2 的 OpenSSL 的变更日志

在https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect提交错误报告。


Kei*_*tes 1

看起来这是 32 位系统与 64 位系统的问题。我清除了所有内容,自己下载并构建了 Openssl,然后按照构建解析器的说明进行操作。在 lnk 阶段,它跳过了“不兼容的 libcrypto”,然后失败。

因此,我假设所需的库仅适用于 64 位系统,并且在 32 位系统上安装 libssl-dev 期间会跳过。更清晰的错误消息会很好。