cmake 标准完整模板

#CMake最低版本号要求
cmake_minimum_required(VERSION 2.8)

#指定项目名称
project(openailab_four_monitor)

#指定工程需要用到的一些库
set(ENV{PKG_CONFIG_PATH} /usr/local/AID/pkgconfig)
find_package(PkgConfig)
pkg_search_module(BLADECV REQUIRED bladecv)
pkg_search_module(GTK REQUIRED gtk±3.0)
#find_package(PkgConfig)
#find_package(Qt5 REQUIRED Widgets)
#find_package(Qt5 REQUIRED Core)
#find_package(Qt5 REQUIRED Gui)

#包含c++11特性
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11 -g”)
#指定版本信息
set(CMAKE_SYSTEM_VERSION 1)

#若是需要指定编译器路径
#set(CROSS_TOOLCHAIN_PREFIX “/path/arm-linux-”)
#指定编译器
#set(CMAKE_C_COMPILER   “KaTeX parse error: Expected 'EOF', got '#' at position 31: …N_PREFIX}gcc") #̲set(CMAKE_CXX_C…{CROSS_TOOLCHAIN_PREFIX}g++”)

#使用默认路径的g++指定编译器  
set(CMAKE_CXX_COMPILER “g++”)

#指定编译选项
set(CMAKE_BUILD_TYPE Debug )

#指定编译目录
set(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build)

#添加子目录,这样进入源码文件src目录可以继续构建  
#add_subdirectory(${PROJECT_SOURCE_DIR}/src)

#查找当前目录下的所有源文件,
#并将名称保存到DIR_LIB_SRCS目录
#aux_source_directory(. DIR_LIB_SRCS)

#指定头文件目录,PROJECT_SOURCE_DIR为工程的根目录  
include_directories(
${PROJECT_SOURCE_DIR}/include
/usr/local/AID
${BLADECV_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
)

#添加需要链接的库文件目录
link_directories(
/usr/lib64/
${BLADECV_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS}
)

#添加编译参数和横定义
#option(USE_BLADECV “bladecv” ON)
#if(USE_BLADECV)
#add_definitions(-DBLADECV)
#endif()

#设置编译选项(会将gcc g++全部加上)
#add_compile_options(-g -std=c++11)
add_compile_options(-fPIC)

#指定可执行文件的输出目录,输出到bin下面  
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

#生成动态库    
#add_library(shared_demo SHARED demo.cpp -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
#-lbcv -lgtk-3 -lrtspclient)

#设置库输出名为 shared => libshared.so  
#set_target_properties(shared_demo PROPERTIES OUTPUT_NAME “shared”)

#生成静态库  
#add_library(static_demo STATIC demo.cpp -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
#-lbcv -lgtk-3 -lrtspclient)  
#设置输库出名为 static => libstatic.a  
#set_target_properties(static_demo PROPERTIES OUTPUT_NAME “static”)

#指定库文件输出路径  
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#在指定目录下查找库,并保存在LIBPATH变量中
#find_library(LIBPATHS  shared ${PROJECT_SOURCE_DIR}/lib /usr/lib64)

#指定生成目标
add_executable(demo demo.cpp)

#链接共享库
target_link_libraries(demo -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
-lbcv -lgtk-3 -lrtspclient ${BLADECV_LDFLAGS} ${GTK_LDFLAGS})

原文链接: https://www.cnblogs.com/mengfu188/p/13561681.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    cmake 标准完整模板

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/201426

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午8:46
下一篇 2023年2月12日 下午8:46

相关推荐