ʹÓÃCMake¹¹½¨LinuxÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐòµÄÉèÖü¼ÇÉ
ʹÓÃcmake¹¹½¨linuxÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐòµÄÉèÖü¼ÇÉ
ͻ񻣼
ÔÚÖÇÄܶ¼»áµÄ½¨ÉèÀú³ÌÖУ¬Çå¾²ÊÇÒ»¸öÖÁ¹ØÖ÷ÒªµÄÎÊÌ⡣ΪÁËÖª×㶼»áÇå¾²µÄÐèÇ󣬿ª·¢ÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐò¾ßÓÐÖ÷ÒªÒâÒå¡£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃCMake¹¹½¨LinuxÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐò£¬²¢ÌṩһЩÉèÖü¼ÇɺʹúÂëʾÀý¡£
CMake¼ò½é
CMakeÊÇÒ»¸ö¿çƽ̨µÄ¿ªÔ´¹¹½¨¹¤¾ß£¬Ëü¿ÉÒÔ×Ô¶¯ÌìÉú±àÒëÖ¸ÁʹÆä¿ÉÒÔÔÚ²î±ðµÄ¿ª·¢ÇéÐκͲÙ×÷ϵͳÉϾÙÐÐ˳Ӧ¡£CMakeʹÓÃÒ»¸öÃûΪCMakeLists.txtµÄÉèÖÃÎļþ£¬ÆäÖаüÀ¨Á˹¹½¨ÏîÄ¿ËùÐèµÄËùÓÐÐÅÏ¢¡£
¹¹½¨LinuxÇå¾²Ó¦ÓóÌÐòµÄÄ¿µÄ
ÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐòÐèҪʵʱ´¦ÀíºÍÆÊÎö´ó×ÚµÄÊý¾Ý£¬²¢Æ¾Ö¤ÆÊÎöЧ¹û½ÓÄÉÏìÓ¦µÄ²½·¥¡£±ðµÄ£¬Ó¦ÓóÌÐò»¹ÐèÒªÓëÆäËûϵͳºÍ×°±¸¾ÙÐÐͨѶºÍ½»»¥¡£Òò´Ë£¬¹¹½¨LinuxÇå¾²Ó¦ÓóÌÐòʱ£¬ÐèҪ˼Á¿ÒÔÏÂÄ¿µÄ£º
ʵʱÐÔ£ºÓ¦ÓóÌÐòÐèÒª°ü¹ÜÔÚ´¦Àí´ó×ÚÊý¾Ýʱ¼á³Ö¸ßÐÔÄܺ͵ÍÑÓ³Ù¡£
¿ÉÀ©Õ¹ÐÔ£ºÓ¦ÓóÌÐòÐèÒªÄܹ»´¦ÀíÒ»Ö±ÔöÌíµÄÊý¾ÝºÍÓû§Á¿¡£
ÎȹÌÐÔ£ºÓ¦ÓóÌÐòÐèÒª¾ß±¸¸ß¿ÉÓÃÐÔºÍÈÝ´íÄÜÁ¦£¬ÒÔ±ÜÃâÊý¾Ýɥʧ»òϵͳÍ߽⡣
¿ÉÒÆÖ²ÐÔ£ºÓ¦ÓóÌÐòÐèÒªÄܹ»ÔÚ²î±ðµÄLinux¿¯ÐаæºÍÓ²¼þƽ̨ÉÏÔËÐС£
CMakeÉèÖü¼ÇÉ
ΪÁËʵÏÖÉÏÊöÄ¿µÄ£¬ÒÔÏÂÊÇһЩ»ù±¾µÄCMakeÉèÖü¼ÇÉ£º
3.1. ÉèÖñàÒëÑ¡Ïî
ʹÓÃCMake¿ÉÒÔÇáËÉÉèÖòî±ðµÄ±àÒëÑ¡Ïî¡£ÀýÈ磬¿ÉÒÔͨ¹ýÌí¼ÓÒÔÏ´úÂ뽫µ÷ÊÔ·ûºÅÌí¼Óµ½ÌìÉúµÄ¿ÉÖ´ÐÐÎļþÖУº
set(CMAKE_BUILD_TYPE Debug)
µÇ¼ºó¸´ÖÆ
3.2. Ìí¼ÓÔ´ÎļþºÍÒÀÀµÏî
ÔÚCMakeLists.txtÖÐÌí¼ÓÔ´ÎļþºÍËùÐèµÄÍⲿ¿â¡£ÀýÈ磬¿ÉÒÔͨ¹ýÒÔÏ´úÂëÌí¼ÓÔ´Îļþ£º
file(GLOB SOURCES src/*.cpp)
µÇ¼ºó¸´ÖÆ
¿ÉÒÔͨ¹ýÒÔÏ´úÂëÌí¼ÓÍⲿ¿â£º
find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_app ${OpenCV_LIBS})
µÇ¼ºó¸´ÖÆ
3.3. ÉèÖÃ×°ÖÃÄ¿µÄ
ͨ¹ýÉèÖÃ×°ÖÃÄ¿µÄ£¬¿ÉÒÔÔÚ¹¹½¨Àú³ÌÖн«ÌìÉúÎļþ×°Öõ½Ö¸¶¨µÄλÖá£ÀýÈ磬¿ÉÒÔͨ¹ýÒÔÏ´úÂëÖ¸¶¨×°ÖÃĿ¼£º
install(TARGETS my_app DESTINATION /usr/local/bin)
µÇ¼ºó¸´ÖÆ
´úÂëʾÀý
ÏÂÃæÊÇÒ»¸ö¼òÆÓµÄÖÇÄܶ¼»á¼à¿ØϵͳӦÓóÌÐòµÄ´úÂëʾÀý£º
#include <iostream> #include <opencv2/opencv.hpp> int main() { cv::VideoCapture cap(0); if (!cap.isOpened()) { std::cout << "Failed to open camera!" << std::endl; return -1; } while (true) { cv::Mat frame; cap.read(frame); if (frame.empty()) { std::cout << "No frame captured!" << std::endl; break; } // ÆäËûͼÏñ´¦ÀíºÍÆÊÎö²Ù×÷ cv::imshow("Smart City Security", frame); if (cv::waitKey(1) == 'q') { break; } } cap.release(); cv::destroyAllWindows(); return 0; }
µÇ¼ºó¸´ÖÆ
½áÂÛ
±¾ÎÄÏÈÈÝÁËÔõÑùʹÓÃCMake¹¹½¨LinuxÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐò£¬²¢ÌṩÁËһЩÉèÖü¼ÇɺʹúÂëʾÀý¡£Í¨¹ýÎÞаʹÓÃCMakeµÄ¹¦Ð§£¬ÎÒÃÇ¿ÉÒÔÇáËɵع¹½¨¸ßÐÔÄÜ¡¢¿ÉÀ©Õ¹¡¢Îȹ̺ͿÉÒÆÖ²µÄÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐò¡£Ï£Íû±¾ÎĶÔÄúÔÚ¹¹½¨ÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐòʱÓÐËù×ÊÖú¡£
ÒÔÉϾÍÊÇʹÓÃCMake¹¹½¨LinuxÖÇÄܶ¼»áÇå¾²Ó¦ÓóÌÐòµÄÉèÖü¼ÇɵÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡