2013-08-14 19 views
8

Może brakuje mi czegoś, ale nie jestem w stanie zbudować statycznych bibliotek opencv.Budowanie OpenCV jako bibliotek statycznych

Setup:

Kubuntu 12.04

gcc 4.6.3

dokonać 3,81

CUpewnij 2.8.7

OpenCV 2.4.6.1 (ostatni dostępny na miejscu)

Wykonuję wszystkie zadania ręcznie. Próbowałem z cmake-gui bez większego sukcesu.

Robię to, co zostało napisane.

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

(Próbowałem też z BUILD_SHARED_LIBRARIES = NO)

Co mogę to (dla rdzenia na przykład):

  • libopencv_core.so
  • libopencv_core.so.2.4
  • libopencv_ core.so.2.4.6
  • libopencv_core_pch_dephelp.a

Aby powiedzieć prawdę, spodziewałem libopencv_core.a.

Jestem początkującym z pakietem/libs budującym na Linuksie. Jestem pewien, że jest coś, co zrobiłem źle, ale nie wiem co. Również nie chcę używać bibliotek dynamicznych ...

Dzięki za pomoc!

EDIT Usunięto pustą przestrzeń między -D ... w wierszu poleceń cmake

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 

wciąż widzę Zbudowany jako dynamicznych bibliotekami ?: TAK i mówi mi, że nie przejmuje się zmienną BUILD_SHARED_LIBRARIES!

+0

Czy próbowałeś powołując CMake bez spacji pomiędzy '-D' flag i ich wartości? Tak więc np. 'cmake. -DCMAKE_BUILD_TYPE = Puść ...-DBUILD_SHARED_LIBRARIES = OFF' – Fraser

+0

Próbowałem bezskutecznie. Zobacz ** EDYCJA ** w moim pytaniu. –

+1

Głupi jestem! Jest to ** - DBUILD_SHARED_LIBS = NO **! Nie BUILD_SHARED_LIBRARIES ... –

Odpowiedz

15

Patrząc na OpenCV's CMakeLists.txt, wygląda na to, że używasz niewłaściwych nazw dla opcji CMake OpenCV.

BUILD_SHARED_LIBRARIES powinny być BUILD_SHARED_LIBS i BUILD_PYTHON_SUPPORT powinny być BUILD_opencv_python

+0

Zadziwiające, jak frustrujące problemy mają proste rozwiązania! (każdy może na odwrót też jest prawdą!) Dzięki! –

Powiązane problemy