opensslconf.h не знайдено


14

Я намагаюся створити аналізатор znort987 і виконав sudo apt-get libssl-dev. Я можу побачити всі види файлів заголовків, пов'язаних з ssl, в / usr / include / openssl, але у папці openssl відсутня opensslconf.h, і команда make викликає помилку:

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

Я використовую Ubuntu 14.04 на 32-бітному ноутбуці AMD.

Оновлення: я очистив установку:

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

Відповіді:


6

Якщо ви будуєте на 64-системі та орієнтуєтесь на 32-розрядні, наступна команда вирішила цю проблему для мене:

sudo apt-get install libssl-dev:i386

1
І вам потрібно спочатку активувати цю архітектуруsudo dpkg --add-architecture i386
Sandburg

4

Цей матеріал, здається, траплявся давно (конкретно, 2013-05-20 16:56:06 UTC). Я зіткнувся з дивною проблемою, яка дуже схожа на ОП, але виявилася проблема зі свигом, який не зміг приєднати правильний набір включень при компілюванні. Я закінчив полювання через джерело, щоб переконатися, що це не проблема пакету 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 / правила .

А порушник, Курт Роекс, пише в журналі змін:

  • Перейдіть до / usr / include / $ (DEB_HOST_MULTIARCH) та позначте libssl-dev Multi-Arch: те саме.

Справедливо кажучи, я б хотів, щоб принаймні openslconf.h був пов'язаний у папку / usr / include / openssl з рештою логічно пов'язаних заголовків. Але це не помилка, це лише моя думка. Для людей, які стикаються з цією проблемою, як і я, потрібно лише трохи нюхати відсутні, включаючи, щоб все гуло.

А до ОП - це вже зовсім пізніше, але я просто дав ваш точний набір кроків пробігти на коробці 14.04 LTS x64 і не зіткнувся з проблемою, з якою у вас виникли. Можливо, проблема була просто вирішена з часом. Сподіваюсь, що щось із цього допомагає.


1
Я думаю, що у мене така ж проблема, як і у вас зараз. Як ти це вирішив?
Surya Wijaya Madjid

3

виконали sudo apt-get libssl-dev. Я можу побачити всі види файлів заголовка, пов'язані з ssl, у / usr / include / openssl, але у папці openssl відсутня opensslconf.h, і команда make викликає помилку ...

Здається, що пакет несправний.

<openssl/opensslconf.h>створюється командою OpenSSL Configure. Його слід включити до файлів дистрибутива. Найдавнішою згадкою, яку я міг знайти, був CHANGELOG OpenSSL версії 0.9.2 .

Подайте звіт про помилки на веб- сайті https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect .


1

Схоже, це проблема з 32 проти 64 бітовими системами. Я все очистив, завантажив і створив Openssl самостійно, і дотримувався інструкцій зі створення аналізатора. Під час фази lnk він пропустив "несумісний libcrypto", а потім провалився.

Тому я припускаю, що потрібні бібліотеки доступні лише для 64-бітових систем і пропускаються під час встановлення libssl-dev на 32-бітових системах. Ясніше повідомлення про помилку було б непогано.


Я намагаюся скласти 32-бітну програму на 64-бітній машині, і я отримую ту ж opensslconf.hне знайдену помилку. встановлено libssl-dev(чи є 32-бітна версія цього?), і все, крім моєї програми, не компілюється через відсутній файл. Будь-які ідеї?
Роберто Андраде


0

Я вирішив цю проблему під час компіляції налаштування для вбудованого пристрою LTS 14 на ПК LTS 16. Ось як я це вирішив:

 cd /usr/include/openssl/

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

 sudo ln -s ../x86_64-linux-gnu/openssl/opensslconf.h .
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.