opensslconf.h ไม่พบ


14

ฉันพยายามสร้างโปรแกรมแยกวิเคราะห์ของ znort987 และดำเนินการ sudo apt-get libssl-dev ฉันสามารถดูไฟล์ส่วนหัวที่เกี่ยวข้องกับ ssl ใน / usr / include / openssl แต่ opensslconf.h หายไปจากโฟลเดอร์ openssl และคำสั่ง make ทำให้เกิดข้อผิดพลาด:

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

ฉันใช้ Ubuntu 14.04 กับแล็ปท็อป AMD 32 บิต

อัปเดต: ฉันทำสิ่งต่อไปนี้เพื่อล้างการติดตั้ง:

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) ฉันพบปัญหาแปลก ๆ ที่ดูเหมือน OP มาก แต่มันกลับกลายเป็นว่าเป็นปัญหากับคำว่า swig ที่ไม่สามารถแนบชุดที่เหมาะสมเมื่อรวบรวม ฉันลงเอยด้วยการหาแหล่งผ่านเพื่อให้แน่ใจว่าไม่ใช่ปัญหาของแพคเกจ Ubuntu แต่ดูเหมือนจะไม่เป็นปัญหากับ Ubuntu

มองอย่างระมัดระวังมากขึ้นในเรื่องนี้แพคเกจ openssl เปลี่ยน opensslconf.h ไปยังโครงสร้างไดเรกทอรีที่มี multiarch-aware นี่คือความมุ่งมั่นอย่างละเอียด: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/revision/11.1.42และถ้าคุณต้องการดูว่าฉันมากับการแก้ไขที่ฉัน ปฏิบัติตามการแก้ไขข้อเขียนของกฎเดเบียนซึ่งเป็นวิธีที่มีประสิทธิภาพอย่างน่าประหลาดใจในการคิดว่าเกิดอะไรขึ้น: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/annotate/head:/ เดเบียน

และผู้ร่วมเดินทาง Kurt Roeckx เขียนใน Changelog:

  • ย้ายไปที่ / usr / include / $ (DEB_HOST_MULTIARCH) และทำเครื่องหมาย libssl-dev Multi-Arch: เดียวกัน

เพื่อความเป็นธรรมฉันต้องการให้ opensslconf.h เป็นอย่างน้อย symlinked ในโฟลเดอร์ / usr / include / openssl กับส่วนหัวอื่น ๆ ที่เกี่ยวข้องกับเหตุผล แต่นั่นไม่ใช่ข้อผิดพลาดนั่นเป็นเพียงความคิดเห็นของฉัน สำหรับคนที่พบปัญหานี้อย่างที่ฉันเคยทำมันต้องใช้เวลาสักหน่อยในการดมกลิ่นที่หายไปรวมถึงการทำให้สิ่งต่างๆ

และสำหรับ OPมันค่อนข้างมากในตอนนี้ แต่ฉันเพิ่งทำตามขั้นตอนที่แน่นอนของคุณในกล่อง 14.04 LTS x64 และไม่พบปัญหาที่คุณมี บางทีปัญหาอาจได้รับการแก้ไขเมื่อเวลาผ่านไป หวังว่าสิ่งนี้จะช่วยได้บ้าง


1
ฉันคิดว่าฉันกำลังมีปัญหาเช่นเดียวกับคุณในขณะนี้ คุณแก้ปัญหาอย่างไร
Surya Wijaya Madjid

3

ได้ดำเนินการ sudo apt-get libssl-dev ฉันสามารถดูไฟล์ส่วนหัวที่เกี่ยวข้องกับ ssl ใน / usr / include / openssl แต่ opensslconf.h หายไปจากโฟลเดอร์ openssl และคำสั่ง make ทำให้เกิดข้อผิดพลาด ...

ดูเหมือนว่าพัสดุชำรุด

<openssl/opensslconf.h>ถูกสร้างโดยConfigureคำสั่งของ OpenSSL มันควรจะรวมอยู่ในไฟล์ distro ถึงที่สุดที่ฉันสามารถหาเป็น 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 บิตใช่ไหม) และทั้งหมดยกเว้นโปรแกรมของฉันไม่คอมไพล์เนื่องจากไฟล์ที่ขาดหายไป ความคิดใด ๆ
Roberto Andrade


0

ฉันเข้ารหัสปัญหานี้ขณะรวบรวมการตั้งค่าสำหรับอุปกรณ์ LTS 14 ที่ฝังอยู่ใน LTS 16 PC นี่คือวิธีที่ฉันแก้ไขมัน:

 cd /usr/include/openssl/

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

 sudo ln -s ../x86_64-linux-gnu/openssl/opensslconf.h .
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.