Building OpenCV als statische Bibliotheken

Vielleicht bin ich etwas fehlt, aber ich bin nicht in der Lage zu bauen, die statischen Bibliotheken von opencv.

Setup:

Kubuntu 12.04

gcc 4.6.3

machen 3.81

cmake 2.8.7

opencv 2.4.6.1 (zuletzt verfügbar auf der Website)

Ich alles tun, den Auftrag manuell. Ich habe versucht, mit cmake-gui mit nicht mehr Erfolg.

Ich tun, was geschrieben steht.

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_QT=ON -D BUILD_SHARED_LIBRARIES=OFF ..

(Ich habe auch versucht mit BUILD_SHARED_LIBRARIES=NEIN)

Was ich bekomme, ist (für core zum Beispiel):

  • libopencv_core.so
  • libopencv_core.so.2.4
  • libopencv_core.so.2.4.6
  • libopencv_core_pch_dephelp.ein

Um die Wahrheit zu sagen, ich erwartete libopencv_core.ein.

Ich bin ein Neuling mit dem Paket/libs bauen auf Linux. Ich bin sicher, es ist etwas, was ich falsch gemacht habe, aber ich weiß nicht was. Ich möchte auch nicht für die Verwendung dynamischer Bibliotheken...

Vielen Dank für Ihre Hilfe!

BEARBEITEN Entfernt das Leerzeichen zwischen -D ... in der cmake-Befehl Linie

Result:

-- General configuration for OpenCV 2.4.6.1 =====================================
--   Version control:               unknown
-- 
--   Platform:
--     Host:                        Linux 3.2.0-51-generic x86_64
--     CMake:                       2.8.7
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/make
--     Configuration:               RELEASE
-- 
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ Compiler:                /usr/bin/c++  (ver 4.6)
--     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG  -DNDEBUG
--     C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG -ggdb3
--     C Compiler:                  /usr/bin/gcc
--     C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -O3 -DNDEBUG  -DNDEBUG
--     C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -ffunction-sections -g  -O0 -DDEBUG -D_DEBUG -ggdb3
--     Linker flags (Release):      
--     Linker flags (Debug):        
--     Precompiled headers:         YES
-- 
--   OpenCV modules:
--     To be built:                 core imgproc flann highgui features2d calib3d ml video objdetect contrib photo legacy gpu nonfree java python stitching superres ts videostab

...

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_PYTHON_SUPPORT
    BUILD_SHARED_LIBRARIES

Ich noch sehen, Gebaut werden als dynamische Bibliotheken?: JA und es sagt mir, dass er kümmert sich nicht um die BUILD_SHARED_LIBRARIES variable!

  • Haben Sie versucht, die CMake aufrufen, ohne Leerzeichen zwischen den -D flags und Ihre Werte? Also, z.B. cmake . -DCMAKE_BUILD_TYPE=Release ... -DBUILD_SHARED_LIBRARIES=OFF
  • Ich habe es versucht, leider erfolglos. Finden Sie in der EDIT in meiner Frage.
  • Dumm ich bin! Es ist -DBUILD_SHARED_LIBS=KEINE! Nicht BUILD_SHARED_LIBRARIES...
  • Ja - habe ich erwähnt, dass in meiner Antwort... eine einfache Fehler zu machen! Zumindest CMake warnt vor nicht verwendete Kommandozeilen-Variablen. Übrigens, ich denke, die CMAKE_BUILD_TYPE Wert ist case-sensitive und ist in der Regel Release, nicht RELEASE.
  • 🙂 ich habe den gleichen Fehler...
InformationsquelleAutor dom_beau | 2013-08-14
Schreibe einen Kommentar