找不到opensslconf.h


14

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

 make: *** No rule to make target `/usr/include/openssl/opensslconf.h', needed by `.objs/rmd160.o'.  Stop.

我在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

现在我得到:

  /usr/include/openssl/e_os2.h:56:33: fatal error: openssl/opensslconf.h: No such file or directory

Answers:


5

如果您使用的是64位系统,而目标是32位,则以下命令可为我解决此问题:

sudo apt-get install libssl-dev:i386

您需要首先使用sudo dpkg --add-architecture i386
Sandburg

4

这些东西似乎发生很久了(特别是2013-05-20 16:56:06 UTC)。我遇到了一个看起来很像OP的怪异问题,但事实证明这是swig无法在编译时附加正确的包含的问题。我最终通过搜索源来确保不是ubuntu软件包问题,但是ubuntu似乎不是问题。

对此进行更仔细的查看,openssl软件包将opensslconf.h转换为可感知多体系结构的目录结构。这是详细的提交:http : //bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/revision/11.1.42,如果您想了解我是如何提出该修订版的,我遵循了对debian规则的注释修订,这是一种出乎意料的有效方式来确定发生了什么事情:http : //bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/annotate/head:/ debian / rules

提交者Kurt Roeckx在Changelog中写道:

  • 移至/ usr / include / $(DEB_HOST_MULTIARCH),并标记libssl-dev Multi-Arch:相同。

公平地说,我希望至少将opensslconf.h与其余逻辑相关的标头符号链接到/ usr / include / openssl文件夹中。但这不是错误,这只是我的观点。对于像我一样遇到此问题的人们,只需要嗅探一下缺少的内容就可以保持嗡嗡作响。

到OP,这是相当多后的现在,但我只给你确切的一系列步骤运行通过在14.04 LTS 64箱,并没有遇到您遇到的问题。也许随着时间的流逝,问题就解决了。希望有些帮助。


1
我想我现在遇到的问题与您相同。您是如何解决的?
Surya Wijaya Madjid 2015年

3

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

听起来包装有缺陷。

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

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


1

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

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


我正在尝试在64位计算机上编译32位程序,并且遇到相同的opensslconf.h未找到错误。已安装libssl-dev(是否有32位版本?),但由于缺少文件,我的所有程序都无法编译。有任何想法吗?
罗伯托·安德拉德


0

在编译用于LTS 16 PC上的嵌入式LTS 14设备的安装程序时,我遇到了这个问题。这是我解决的方法:

 cd /usr/include/openssl/

 sudo ln -s /usr/include/gnutls/openssl.h .

 sudo ln -s ../x86_64-linux-gnu/openssl/opensslconf.h .
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.