cmake知识点记录

一、例子

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! ")

猜你喜欢

转载自blog.csdn.net/qq_29007291/article/details/120043810