×ðÁú¿­Ê±

ʹÓÃCMake¹¹½¨LinuxÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòµÄÉèÖü¼ÇÉ

ʹÓÃcmake¹¹½¨linuxÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòµÄÉèÖü¼ÇÉ

СÐò£º

Ëæ×ÅÊÖÒÕµÄһֱǰ½ø  £¬ÖÇÄÜÊÓƵ¼à¿ØÔÚÏÖ´úÉç»áÖÐÊ©Õ¹×ÅÔ½À´Ô½Ö÷ÒªµÄ×÷Óá£ÔÚÇå¾²¼à¿Ø¡¢½»Í¨ÖÎÀíµÈÁìÓò  £¬ÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòµÄÐèÇóÈÕÒæÔöÌí¡£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃCMakeÀ´¹¹½¨Ò»¸öÊÊÓÃÓÚLinuxϵͳµÄÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐò  £¬²¢·ÖÏíһЩÏà¹ØµÄÉèÖü¼ÇÉ¡£

Ò»¡¢CMake¼ò½é£º

CMakeÊÇÒ»¸ö¿çƽ̨µÄ×Ô¶¯»¯¹¹½¨ÏµÍ³¹¤¾ß  £¬¿ÉÒÔÌìÉú³£¼ûµÄ¹¹½¨¹¤¾ß  £¬ÈçMakefile¡¢Visual Studio½â¾ö¼Æ»®µÈ¡£Ëüͨ¹ýCMakeLists.txtÎļþÐÎòÏîÄ¿µÄ¹¹½¨¹æÔò  £¬´Ó¶øʵÏÖ¿çƽ̨¹¹½¨µÄÄ¿µÄ¡£CMake¾ßÓо«Á·Ò×Óᢹ¦Ð§Ç¿Ê¢µÄÌصã  £¬±»ÆÕ±éÓ¦ÓÃÓÚÖÖÖÖÈí¼þÏîÄ¿µÄ¹¹½¨Àú³ÌÖС£

¶þ¡¢¹¹½¨Ò»¸öÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòµÄ»ù±¾ÉèÖãº

ÔÚ×îÏÈ֮ǰ  £¬ÎÒÃÇÊ×ÏÈÐèҪװÖúÃCMake¹¤¾ß¡£È»ºó  £¬½¨ÉèÒ»¸öеÄCMakeLists.txtÎļþ  £¬²¢ÔÚÆäÖбàдÒÔÏ´úÂ룺

cmake_minimum_required(VERSION 3.10)
project(SmartVideoMonitor)

set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp  #Ö÷³ÌÐòÎļþ
                 video.cpp  #ÊÓƵ´¦Öóͷ£´úÂëÎļþ
                 utils.cpp) #¹¤¾ßÀà´úÂëÎļþ

add_executable(SmartVideoMonitor ${SOURCE_FILES})

target_link_libraries(SmartVideoMonitor opencv_core  #OpenCVµÄ½¹µã¿â
                                        opencv_highgui  #OpenCVµÄGUI¿â
                                        opencv_video  #OpenCVµÄÊÓƵ´¦Öóͷ£¿â
                                        pthread)  #¶àÏß³ÌÖ§³Ö¿â

µÇ¼ºó¸´ÖÆ

Õâ¶Î´úÂë½ç˵ÁËÒ»¸öÃûΪSmartVideoMonitorµÄÏîÄ¿  £¬Ö¸¶¨ÁËÖ÷³ÌÐòÎļþ(main.cpp)¡¢ÊÓƵ´¦Öóͷ£´úÂëÎļþ(video.cpp)ºÍ¹¤¾ßÀà´úÂëÎļþ(utils.cpp)¡£È»ºóͨ¹ýadd_executable()ÏÂÁÕâЩԴÎļþ±àÒëΪ¿ÉÖ´ÐÐÎļþ¡£

ÔÚ×îºóÒ»ÐеÄtarget_link_libraries()ÖÐ  £¬ÎÒÃÇÁ´½ÓÁËһЩÐèÒªµÄ¿âÎļþ  £¬ÈçOpenCVµÄ½¹µã¿â¡¢GUI¿â¡¢ÊÓƵ´¦Öóͷ£¿âÒÔ¼°¶àÏß³ÌÖ§³Ö¿âpthread¡£

Èý¡¢Ìí¼ÓĿ¼ºÍÎļþµÄËÑË÷·¾¶£º

ÔÚÏÖʵµÄÏîÄ¿ÖÐ  £¬ÎÒÃÇͨ³ £»á½«´úÂëÎļþºÍÍ·Îļþ»®·Ö°²ÅÅÓÚ²î±ðµÄĿ¼ÖÐ  £¬ÎªÁËÄܹ»×¼È·µØÕÒµ½ÕâЩÎļþ  £¬ÎÒÃÇÐèÒªÌí¼ÓËÑË÷·¾¶¡£ÒÔÏÂÊÇÌí¼ÓËÑË÷·¾¶µÄʾÀý´úÂ룺

include_directories(include  #Í·ÎļþµÄËÑË÷·¾¶
                    src)  #Ô´ÎļþµÄËÑË÷·¾¶

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öʾÀýÖÐ  £¬ÎÒÃǽ«Í·ÎļþĿ¼includeºÍÔ´ÎļþĿ¼srcÌí¼ÓΪËÑË÷·¾¶  £¬ÕâÑùÔÚÏîÄ¿ÖÐÒýÓÃÕâЩÎļþʱ  £¬CMake¾ÍÄܹ»×Ô¶¯ËÑË÷µ½ËüÃÇ¡£

ËÄ¡¢Ìí¼Ó×ÓĿ¼µÄ¹¹½¨£º

ÔÚÒ»¸ö´óÐÍÏîÄ¿ÖÐ  £¬ÎÒÃÇͨ³ £»á½«²î±ðµÄÄ£¿é°²ÅÅÓÚ²î±ðµÄ×ÓĿ¼ÖÐ  £¬ÎªÁËÄܹ»×¼È·µØ¹¹½¨ÕâЩ×ÓĿ¼  £¬ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂ룺

add_subdirectory(video)  #Ìí¼Óvideo×ÓĿ¼
add_subdirectory(utils)  #Ìí¼Óutils×ÓĿ¼

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öʾÀýÖÐ  £¬ÎÒÃÇͨ¹ýadd_subdirectory()ÏÂÁvideo×ÓĿ¼ºÍutils×ÓĿ¼Ìí¼Óµ½ÏîÄ¿ÖС£ÕâÑù  £¬CMake¾Í»á½øÈëÕâЩ×ÓĿ¼  £¬²éÕÒ²¢¹¹½¨ÏìÓ¦µÄ´úÂëÎļþ¡£

Îå¡¢×Ô½ç˵±àÒëÑ¡Ï

ÓÐʱ  £¬ÎÒÃÇÐèÒª×Ô½ç˵һЩ±àÒëÑ¡Ïî  £¬ÒÔÖª×ãÌض¨µÄÐèÇó¡£CMakeÌṩÁËÒ»ÖÖÇáÓ¯µÄ·½·¨À´ÊµÏÖÕâ¸öÄ¿µÄ  £¬Ê¾Àý´úÂëÈçÏ£º

option(ENABLE_DEBUG "Enable debug mode" OFF)  #½ç˵һ¸öÃûΪENABLE_DEBUGµÄÑ¡Ïî£¬Ä¬ÈϹرÕ

if(ENABLE_DEBUG)
    add_compile_definitions(DEBUG)  #¿ªÆôºê½ç˵DEBUG
    set(CMAKE_BUILD_TYPE Debug)  #ÉèÖù¹½¨ÀàÐÍΪDebugģʽ
endif()

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öʾÀýÖÐ  £¬ÎÒÃǽç˵ÁËÒ»¸öÃûΪENABLE_DEBUGµÄÑ¡Ïî  £¬Ä¬ÈϹرÕ¡£ÈôÊÇÆôÓÃÁËÕâ¸öÑ¡Ïî  £¬¾Í»á¿ªÆôÒ»¸öÃûΪDEBUGµÄºê½ç˵  £¬²¢½«¹¹½¨ÀàÐÍÉèÖÃΪDebugģʽ¡£ÕâÑù  £¬ÎÒÃǾÍÄܹ»Æ¾Ö¤ÐèÒªÀ´¿ªÆô»ò¹Ø±Õµ÷ÊÔģʽ¡£

Áù¡¢×ܽ᣺

ͨ¹ý±¾ÎĵÄÏÈÈÝ  £¬ÎÒÃÇÏàʶÁËÔõÑùʹÓÃCMakeÀ´¹¹½¨Ò»¸öÊÊÓÃÓÚLinuxϵͳµÄÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐò  £¬²¢·ÖÏíÁËһЩÏà¹ØµÄÉèÖü¼ÇÉ¡£

CMake×÷Ϊһ¸ö¹¦Ð§Ç¿Ê¢ÇÒÒ×ÓÚʹÓõĹ¹½¨ÏµÍ³¹¤¾ß  £¬Äܹ»´ó´ó¼ò»¯ÏîÄ¿µÄ¹¹½¨Àú³Ì¡£Í¨¹ýºÏÀíµÄÉèÖúÍÎÞаµÄÑ¡Ïî  £¬ÎÒÃÇÄܹ»¸üºÃµØÊ©Õ¹CMakeµÄÓÅÊÆ  £¬Ìá¸ßÏîÄ¿µÄ¿Éά»¤ÐԺͿÉÀ©Õ¹ÐÔ¡£

Ï£Íû±¾ÎÄÄܹ»¶ÔÄúÔÚ¹¹½¨ÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòʱÓÐËù×ÊÖú  £¬²¢Äܹ»Æô·¢ÄúÔÚÏÖʵÏîÄ¿ÖеÄÉèÖÃÀú³Ì¡£Ð»Ð»ÄúµÄÔĶÁ£¡

¸½Â¼£ºÍêÕûµÄCMakeLists.txtÎļþʾÀý

cmake_minimum_required(VERSION 3.10)
project(SmartVideoMonitor)

set(CMAKE_CXX_STANDARD 11)

option(ENABLE_DEBUG "Enable debug mode" OFF)

if(ENABLE_DEBUG)
    add_compile_definitions(DEBUG)
    set(CMAKE_BUILD_TYPE Debug)
    message("Enable debug mode")
endif()

include_directories(include src)

set(SOURCE_FILES main.cpp video.cpp utils.cpp)

add_subdirectory(video)
add_subdirectory(utils)

add_executable(SmartVideoMonitor ${SOURCE_FILES})

target_link_libraries(SmartVideoMonitor opencv_core opencv_highgui opencv_video pthread)

µÇ¼ºó¸´ÖÆ

²Î¿¼ÎÄÏ×£º

[CMake Documentation](https://cmake.org/documentation/)

ÒÔÉϾÍÊÇʹÓÃCMake¹¹½¨LinuxÖÇÄÜÊÓƵ¼à¿ØÓ¦ÓóÌÐòµÄÉèÖü¼ÇɵÄÏêϸÄÚÈÝ  £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí  £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø  £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È  £¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ  £¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢  £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢  £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå  £¬9:30-18:30  £¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿