CMake/CMakeLists精简模板

关于CMake

由于CMake的跨平台特性,现在已经被越来越多的项目使用。

关于CMake的基础介绍,请参考cmake入门实践

本文提炼了一个精简的CMakeLists文件,通过适当的修改,可用于简单的项目中。

模板

直接上CMakeLists文件:

# 指定最低版本
cmake_minimum_required(VERSION 2.8)

# 指定项目名称
project(demo)

# 为当前路径以及子目录的源文件加入由-D预编译定义
# add_definitions(-DFOO -DDEBUG ...)

# 设置C++编译参数(CMAKE_CXX_FLAGS是全局变量)
# set(CMAKE_CXX_FLAGS "-Wall std=c++11 -Wextra -fPIC -g")

# 设置指定的C++编译器版本是必须的,如果不设置,或者为OFF,则指定版本不可用时,会使用上一版本。
# set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 指定为C++11 版本
set(CMAKE_CXX_STANDARD 11)
# set(CMAKE_CXX_STANDARD 14)

if (MSVC)
    # warning level 4 and all warnings as errors
    add_compile_options(/W4 /WX)
else()
    # lots of warnings and all warnings as errors
    add_compile_options(-Wall -Wextra -pedantic -Werror)
endif()

# 设置变量
set(ROOT_DIR /home/tf)

# 头文件查找目录
include_directories(
    ${ROOT_DIR}/include
    ${ROOT_DIR}/include/third_party
)

# 库文件查找目录
link_directories(${ROOT_DIR}/lib)

# sub_dir指定包含CMakeLists.txt和源码文件的子目录位置
# binary_dir是输出路径, 一般可以不指定
add_subdirecroty(sub_dir [binary_dir])

# 把src目录下所有源文件写入变量DIR_SRCS
aux_source_directory(./src DIR_SRCS)

# 以DIR_SRCS为源文件生成目标文件a.out
add_executable(a.out ${DIR_SRCS})

# 创建库文件
# add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)

# 目标文件链接的库
target_link_libraries(a.out
    pthread
    boost_thread
    boost_system
)
小结

这个模板只是满足最基本需求的版本。

可以直接应用在demo的编写测试中,在项目中使用时,需要逐步修改完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值