Kịch bản
Tôi đang gặp một số khó khăn khi xây dựng phiên bản mới nhất của cơ sở mã đóng góp của OpenCV từ nguồn, nhưng vấn đề có thể chỉ là do tôi thiếu chiều sâu chung chung hơn:
Tìm nạp thẻ 4.5.4 từ kho lưu trữ chính thức, tôi đang sử dụng hướng dẫn xây dựng phù hợp với hướng dẫn chính thức để xây dựng OpenCV với cơ sở mã đóng góp của nó từ đây, trong khi kể từ đó hiện tại OpenCV mới nhất yêu cầu libtiff phiên bản 4, tôi sử dụng cờ cmake được đề cập trong đó để tự xây dựng libtiff phiên bản 4 như một phần của bản dựng OpenCV - để bản dựng OpenCV sử dụng libtiff 4 chứ không phải tiêu đề và thư viện libtiff phiên bản 5 mặc định của Ubuntu 20.04.
Tuy nhiên, tại một thời điểm nhất định trong bản dựng OpenCV, có vẻ như một thư viện không tìm thấy các ký hiệu libtiff phiên bản 4, cụ thể là thư viện liblept
:
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFReadDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFGetFieldDefaulted@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFCleanup@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFIsTiled@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFReadRGBAImageOriented@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFSetSubDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFSetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFCurrentDirOffset@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFWriteScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFPrintDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFGetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFScanlineSize@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFSetWarningHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFSetErrorHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFSetDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFReadScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFClose@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFClientOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: tham chiếu không xác định tới `TIFFGetVersion@LIBTIFF_4.0'
Tôi nhận được đầu ra sau cho thư viện này â
$ ldd /usr/lib/x86_64-linux-gnu/liblept.so.5
.
.
.
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f40034c6000)
thực sự tôi đã cài đặt libtiff5:
$ danh sách apt libtiff*
libtiff-dev/focal-updates,focal-security,hiện là 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 tất cả
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,hiện là 4.1.0+git191117-2ubuntu0.20.04.2 AMD64 [đã cài đặt]
libtiff5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiffxx5/focal-updates,focal-security,hiện là 4.1.0+git191117-2ubuntu0.20.04.2 AMD64 [đã cài đặt, tự động]
libtiffxx5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
Đang nhìn đây, tôi chỉ hơi bối rối với bảng hiển thị yêu cầu phiên bản của libtiff5 là 4.8.3.
Câu hỏi
Điều này có nghĩa là bản dựng trên hệ thống của tôi (theo như ldd
lệnh có thể ngụ ý) cố gắng liên kết liblept5 với libtiff5, khi cố gắng giải quyết các ký hiệu libtiff4 đó? Hay nó đang tìm cách giải quyết chúng một cách linh hoạt và do đó không giải quyết được vì hệ thống của tôi không có sẵn libtiff4 trên toàn cầu cho trình liên kết?
Thông tin phiên bản khác
- Ubuntu 20.04
- Cmake 3.16.3
- GNU Tạo 4.2.1
- gcc 9.3.0