สถานการณ์
ฉันมีปัญหาในการสร้างโค้ดเบสที่มีส่วนร่วมของ 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