Score:0

ข้อผิดพลาดในการเชื่อมโยงการสร้าง OpenCV Contrib 4.5.4 กับ LibTiff4

ธง af

สถานการณ์

ฉันมีปัญหาในการสร้างโค้ดเบสที่มีส่วนร่วมของ OpenCV เวอร์ชันล่าสุดจากซอร์ส แต่ปัญหาอาจเกิดจากการขาดข้อมูลเชิงลึกโดยทั่วไปในส่วนของฉัน:

การดึงแท็ก 4.5.4 จาก repos อย่างเป็นทางการ ฉันกำลังใช้คำแนะนำในการสร้างตาม คำแนะนำอย่างเป็นทางการสำหรับการสร้าง OpenCV ด้วยโค้ดเบสจากที่นี่ในขณะที่ตั้งแต่ ขณะนี้ OpenCV ล่าสุดต้องการ libtiff เวอร์ชัน 4ฉันใช้แฟล็ก cmake ที่กล่าวถึงในการสร้าง libtiff เวอร์ชัน 4 โดยเป็นส่วนหนึ่งของ OpenCV build â เพื่อให้ OpenCV build ใช้ libtiff 4 และไม่ใช่ไลบรารีและส่วนหัวของ Ubuntu 20.04 libtiff เวอร์ชัน 5

เมื่อถึงจุดหนึ่งในการสร้าง OpenCV ดูเหมือนว่าไลบรารีหนึ่งไม่พบสัญลักษณ์ libtiff เวอร์ชัน 4 นั่นคือไลบรารี ป.ล:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFReadDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFGetFieldDefaulted@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFCleanup@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFIsTiled@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFReadRGBAImageOriented@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFSetSubDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFSetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFCurrentDirOffset@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFWriteScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFPrintDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFGetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFScanlineSize@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFSetWarningHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFSetErrorHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFSetDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFReadScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFClose@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFClientOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: การอ้างอิงที่ไม่ได้กำหนดถึง `TIFFGetVersion@LIBTIFF_4.0'

ฉันได้รับผลลัพธ์ต่อไปนี้สำหรับไลบรารีนี้ â

$ ldd /usr/lib/x86_64-linux-gnu/liblept.so.5
.
.
.
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f40034c6000)

ฉันได้ติดตั้ง libtiff5 แล้ว:

$ apt รายการ libtiff*
libtiff-dev/focal-updates,focal-security ตอนนี้ 4.1.0+git191117-2ubuntu0.20.04.2 amd64 
libtiff-dev/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiff-doc/focal-updates, focal-updates, focal-security, focal-security 4.1.0+git191117-2ubuntu0.20.04.2 ทั้งหมด
libtiff-opengl/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 amd64
libtiff-opengl/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiff-tools/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 amd64
libtiff-tools/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiff5-dev/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 amd64
libtiff5-dev/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiff5/focal-updates,focal-security ตอนนี้ 4.1.0+git191117-2ubuntu0.20.04.2 amd64 [ติดตั้งแล้ว]
libtiff5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiffxx5/focal-updates,focal-security ตอนนี้ 4.1.0+git191117-2ubuntu0.20.04.2 amd64 [ติดตั้งแล้ว อัตโนมัติ]
libtiffxx5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386

มอง ที่นี่ฉันแค่งงเล็กน้อยกับตารางที่แสดงความต้องการเวอร์ชันของ libtiff5 เป็น 4.8.3

คำถาม

นี่หมายความว่าบิลด์ในระบบของฉันคือ (เท่าที่ไฟล์ แอลดีดี คำสั่งอาจบอกเป็นนัย) พยายามเชื่อมโยง liblept5 กับ libtiff5 เมื่อพยายามแก้ไขสัญลักษณ์ libtiff4 เหล่านั้น หรือกำลังพยายามแก้ไขแบบไดนามิกและทำให้ไม่สามารถแก้ไขได้เนื่องจากระบบของฉันไม่มี libtiff4 ที่พร้อมใช้งานทั่วโลกสำหรับตัวเชื่อมโยง

ข้อมูลเวอร์ชันเพิ่มเติม

  • อูบุนตู 20.04
  • cmake 3.16.3
  • GNU สร้าง 4.2.1
  • gcc 9.3.0
Score:0
ธง af

ปัญหานี้จะไม่เกิดขึ้นอีกเมื่อใช้ OpenCV 4.2.0 สำหรับ Ubuntu 20.04 ปัญหาจากด้านบนไม่ได้เกิดขึ้นที่นั่น คุณมักจะต้องจำไว้ว่าให้ใช้ â

sudo ldconfig

หลังจากติดตั้ง libs แล้ว หากคุณคาดว่าจะสร้างเทียบกับพวกเขา

ที่กล่าวว่า ฉันสงสัยว่าประโยคคำถามสุดท้ายของคำถามของฉันสามารถตอบได้หรือไม่ เพื่อส่งเสริมความเข้าใจที่ดีขึ้นในบริบทดังกล่าวตามที่อธิบายไว้ในคำถามที่ถาม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา