结合最近cmake的运用,对cmake的使用做简要总结。主要是关键词,编译思路的理解。
思路:
set(OpenCV_PATH ${PROJECT_SOURCE_DIR}/../3rdParty/opencv430) set(OpenCV_INCLUDE_DIRS ${OpenCV_PATH}/include/opencv4 ${OpenCV_PATH}/include/opencv4/opencv2) set(OpenCV_LIBS ${OpenCV_PATH}/lib/libopencv_world.so) include_directories(${OpenCV_INCLUDE_DIRS}) #最后表示把链接对应的头文件
set(EPCV_INCLUDES ${PROJECT_SOURCE_DIR}/../include ${PROJECT_SOURCE_DIR}/../include/common ${PROJECT_SOURCE_DIR}/../include/epcv_engine) include_directories(${EPCV_INCLUDES})
#找到src文件 file(GLOB EPCV_TWO_DIM ${PROJECT_SOURCE_DIR}/../src/epcv_traffic_sign_classifier.cpp ${PROJECT_SOURCE_DIR}/../src/epcv_engine/epcv_traffic_sign_classifier_engine.cpp)
#根据src文件生成可执行文件 add_executable(demo_traffic_sign_classifier demo_traffic_sign_classifier.cpp ${EPCV_TWO_DIM} ${SAMPLES_COMMON_SOURCES_FILE})
#链接库文件 target_link_libraries(demo_traffic_sign_classifier ${OpenCV_LIBS} ${TRTLIBS} ${CUDA_LIBRARIES})
思路:
file(GLOB TRAFFIC_LIBS ${PROJECT_SOURCE_DIR}/../lib/*.so)
add_executable(demo_traffic_sign_classifier demo_traffic_sign_classifier.cpp ${SAMPLES_COMMON_SOURCES_FILE})
#链接库文件 target_link_libraries(demo_traffic_sign_classifier ${TRAFFIC_LIBS} ${OpenCV_LIBS} ${TRTLIBS} ${CUDA_LIBRARIES})
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
add_library(${LIB_NAME} SHARED ${SOURCE_FILES_TWO} ${SAMPLES_COMMON_SOURCES_FILE})
target_link_libraries(${LIB_NAME} ${OpenCV_LIBS} ${TRTLIBS} ${CUDA_LIBRARIES})
原创声明,本文系作者授权云+社区发表,未经许可,不得转载。
如有侵权,请联系 yunjia_community@tencent.com 删除。
我来说两句