一、例子
cmake_minimum_required(VERSION 3.9)
set(PROJECT_NAME demo)
project(${
PROJECT_NAME})
message(STATUS "Warning is ignored in CMakeLists.txt")
add_definitions(-w) # 忽略 警告
#add_subdirectory(${
CMAKE_CURRENT_SOURCE_DIR}/shared_library ${
CMAKE_CURRENT_SOURCE_DIR}/shared_library/build) # 先编译子工程
# 添加头文件
include_directories(${
PROJECT_NAME} "/usr/local/include")
include_directories(${
PROJECT_NAME} "/usr/local/cuda/include")
include_directories(${
PROJECT_NAME} "/usr/local/include/opencv")
include_directories(${
PROJECT_NAME} "/usr/local/include/opencv2")
include_directories(${
PROJECT_NAME} "./include")
SET(CMAKE_CXX_FLAGS "-std=c++0x")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${
CMAKE_CURRENT_SOURCE_DIR})#确保生成的可执行在cmakelist下同目录
add_executable(${
PROJECT_NAME} src/main.cpp)
# load dynamic library
target_link_libraries(${
PROJECT_NAME} libopencv_core.so opencv_imgcodecs.so libopencv_imgproc.so libopencv_highgui.so libopencv_photo.so libopencv_shape.so)
target_link_libraries(${
PROJECT_NAME} libcudart.so libcublas.so libcurand.so libcudnn.so)
二、后处理之复制移动文件
自定义后处理命令,在完成编译后移动文件
add_custom_command(TARGET ${
PROJECT_NAME} POST_BUILD
COMMAND echo "Moving the .so from build to shared_library..."
COMMAND mv ${
CMAKE_CURRENT_SOURCE_DIR}/build/lib${
PROJECT_NAME}.so ${
CMAKE_CURRENT_SOURCE_DIR}/
COMMAND echo "Moving done! ")