2012-04-01 8 views
2

Ich baue opencv 233 als eine statische lib, aber wenn ich es in meiner Anwendung verwende, gibt es Link-Fehler beim Aufruf von cv :: imwrite(), dass tiff, png, jasp libs nicht verknüpft sind. Ist das die Absicht, dass ich diese meine Selbst in meiner App verbinden sollte oder habe ich es falsch gebaut.Opencv Statische Build, JPEG, PNG, TIFF nicht statisch verknüpft?

Ich möchte, dass die 3party-Bibliotheken statisch in der opencv_highgui.lib enthalten sind, anstatt sie selbst in meinen Apps zu verlinken.

enter image description here

Antwort

1

In der Lösung, wenn für Visual Studio 2010 konfiguriert, sind die Bibliotheken der dritten Partei nicht für die Verknüpfung festgelegt. Ändern Sie die Abhängigkeiten der Linkbibliothek für das Projekt highgui auf true.

+0

Nun, ich vermute, das liegt daran, dass deine CMake-Konfiguration falsch war. Wenn nicht, solltest du OpenCV helfen, indem du einen Fehlerbericht einreichst. +1 für die Beantwortung Ihrer eigenen Frage. – ypnos

+0

Vielleicht stelle ich es falsch auf, aber es fällt mir schwer herauszufinden, welche Flagge ich setzen soll. (Ein Dump meiner Einstellungen enthalten) –

+0

Danke für die Veröffentlichung. Es scheint, dass Sie auf einen OpenCV-Build-System-Fehler gestoßen sind, da Sie die Lösung manuell ändern mussten. – ypnos

-2

In cmake, stellen Sie sicher, dass Sie BUILD_3RDPARTY, oder was auch immer sie genannt wird, überprüft. OpenCV wird dann lib Abhängigkeiten von seiner eigenen Struktur aufbauen und statisch in highgui verlinken. Dies ist die Standardeinstellung für Windows.

+0

Ich sehe keine BUILD_3RDPARTY, nur WITH_JPPEG, WITH_PNG und ich habe diese überprüft. –

+0

Auch in der Lösung sind alle Bibliotheken der 3. Partei korrekt aufgebaut, aber sie befinden sich nur in einem eigenen Ordner. –

+0

Die Variable heißt OPENCV_BUILD_3RDPARTY_LIBS. Es ist nicht schwer, das Suchfeld in CMake zu verwenden, oder? – ypnos

Verwandte Themen