Puncte:0

Eroare de conectare la crearea OpenCV Contrib 4.5.4 cu LibTiff4

drapel af

Scenariu

Întâmpin unele probleme la construirea celei mai recente versiuni a bazei de coduri de contribuție a OpenCV din sursă, dar problema ar putea sta la baza unei lipse mai generice de profunzime din partea mea:

Preluând eticheta 4.5.4 din depozitele oficiale, folosesc instrucțiunile de construire în conformitate cu instrucțiuni oficiale pentru construirea OpenCV cu baza sa de cod de contribuție de aici, pe când de atunci în prezent, cel mai recent OpenCV necesită libtiff versiunea 4, Folosesc indicatorul cmake menționat aici pentru construirea libtiff versiunea 4 în sine ca parte a versiunii OpenCV â, astfel încât versiunea OpenCV să folosească libtiff 4 și nu biblioteca și anteturile implicite Ubuntu 20.04 libtiff versiunea 5.

Cu toate acestea, la un anumit moment al versiunii OpenCV, se pare că o bibliotecă nu reușește să găsească simbolurile libtiff versiunea 4, și anume biblioteca liblept:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFReadDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFGetFieldDefaulted@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFCleanup@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFIsTiled@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFReadRGBAImageOriented@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFSetSubDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFSetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFCurrentDirOffset@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFWriteScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFPrintDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFGetField@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFScanlineSize@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFSetWarningHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFSetErrorHandler@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFSetDirectory@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFReadScanline@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFClose@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFClientOpen@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/liblept.so.5: referință nedefinită la `TIFFGetVersion@LIBTIFF_4.0'

Obțin următoarea ieșire pentru această bibliotecă â

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

într-adevăr, am instalat libtiff5:

$ apt list libtiff*
libtiff-dev/focal-updates,focal-security, acum 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 all
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, acum 4.1.0+git191117-2ubuntu0.20.04.2 amd64 [instalat]
libtiff5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386
libtiffxx5/focal-updates,focal-security, acum 4.1.0+git191117-2ubuntu0.20.04.2 amd64 [instalat, automat]
libtiffxx5/focal-updates,focal-security 4.1.0+git191117-2ubuntu0.20.04.2 i386

In cautarea Aici, sunt puțin nedumerit de tabelul care arată cerințele versiunii libtiff5 ca 4.8.3.

Întrebare

Înseamnă asta că construirea pe sistemul meu este (în măsura în care ldd comanda poate implica) încercarea de a lega liblept5 cu libtiff5, când încearcă să rezolve acele simboluri libtiff4? Sau încearcă să le rezolve dinamic și, prin urmare, nu reușește să rezolve, deoarece sistemul meu nu are libtiff4 disponibil la nivel global pentru linker?

Informații suplimentare despre versiune

  • Ubuntu 20.04
  • cma face 3.16.3
  • GNU Make 4.2.1
  • gcc 9.3.0
Puncte:0
drapel af

Această problemă nu se reproduce atunci când utilizați OpenCV 4.2.0 pentru Ubuntu 20.04. Problema de sus nu apare acolo. De asemenea, trebuie să vă amintiți adesea să utilizați â

sudo ldconfig

După instalarea bibliotecilor, dacă vă așteptați să construiți împotriva lor.

Acestea fiind spuse, mă întreb dacă clauza finală a întrebării mele ar putea fi abordată, astfel încât să promovez o înțelegere mai fină într-un context precum cel delimitat în întrebarea așa cum a fost adresată.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.