पहले: एक फ़ोल्डर परियोजना दो सबफ़ोल्डर src और शामिल, और एक फ़ाइल CMakeLists.txt बुलाया युक्त पैदा करते हैं।
दूसरा: अपने सीपीपी को src फ़ोल्डर और अपने शीर्षकों के अंदर फ़ोल्डर में शामिल करें।
तीसरा: आपका CMakeLists.txt इस तरह दिखना चाहिए:
cmake_minimum_required(VERSION 2.8)
PROJECT (name)
find_package(OpenCV REQUIRED)
set(NAME_SRC
src/main.cpp
)
set(NAME_HEADERS
include/header.h
)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
link_directories(${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
add_executable(name ${NAME_SRC} ${NAME_HEADERS})
target_link_libraries(sample_pcTest ${OpenCV_LIBS})
चौथा: ओपन CMake जीयूआई और इनपुट के रूप में रूट फ़ोल्डर का चयन करें और उत्पादन के लिए एक निर्माण फ़ोल्डर बना। कॉन्फ़िगर करें पर क्लिक करें, फिर जनरेटर (विजुअलस्टूडियो, ग्रहण, ...)
स्रोत
2012-12-20 10:53:42
कृपया "link_directories" का उपयोग की सलाह नहीं देते - इसके बजाय, target_link_libraries को तर्क के रूप में आवश्यक किसी भी लाइब्रेरी का पूरा पथ नाम दे। link_directories के लिये दस्तावेज (http://cmake.org/cmake/help/v2.8.10/cmake.html#command:link_directories) कहते हैं कि "ध्यान दें कि यह आदेश शायद ही कभी आवश्यक है।" – DLRdave
आप NAME_HEADERS छोड़ सकते हैं - CMake स्रोत फ़ाइलों को स्कैन करता है हेडर फाइल निर्भरता निर्धारित करने के लिए। –
@DLRdave विंडोज में आप 'link_directories ($ {OpenCV_LIB_DIR})' क्योंकि '$ {OpenCV_LIBS} में दिए गए मान' केवल पुस्तकालय के नाम शामिल नहीं है (पूर्ण पथ) की आवश्यकता होगी। यदि आप चाहते हैं '$ {OpenCV_LIBS}' वास्तव में पुस्तकालय पथ तो आप 'find_package (OpenCV जरुरी प्रमुख imgproc ...)' आवश्यकता होगी शामिल करने के लिए। जब स्थिर रूप से निर्माण होता है तो 'find_package' कॉल में प्रत्येक एकल opencv मॉड्यूल जोड़ने का तात्पर्य है। –