一、CMake使用惯例
1)在项目根目录建立一个build目录:mkdir build && cd build
2)执行:cmake ../
3)确定生成Makefile成功,执行make
二、一个简单的例子
假设当前的目录为test
1)新建hello.cpp
2)新建CMakeLists.txt
内容:add_executable(hello hello.cpp)
3)新建一个build目录并进入,执行cmake ../,可以看到build目录下生成的Makefile文件;执行make,可以看到build目录下生成的hello文件。
4)运行./hello命令。
三、CMake常用命令和变量
add_executable:添加一个可执行文件构建目标
示例工程目录结构:
CMakeLists.txt
include / util.h
lib / libutil.a
src / main.cpp
任务:编写CMakeLists.txt,使得工程包含util.h头文件,编译main.cpp,链接libutil.a,最终生成一个可执行文件hello。
1)给工程起个名字
project(hello)
2)让CMake找到我的头文件
include_directories(./include)
作用:把当前目录下的include 文件夹加入到包含路径
3)让CMake找到我的源文件
aux_source_directory(./src ${hello_src})
作用:把当前路径下src目录下的所有源文件路径放到变量hello_src中
4)让CMake找到我的库文件
link_directories(${CMAKE_CURRENT_LIST_DIR}/lib)
5)告诉CMake我的构建目标
add_executable(${PROJECT_NAME} ${hello_src})
6)告诉CMake我要链接到哪个库
target_link_libraries(${PROJECT_NAME} util)
7)传递FLAGS给C++编译器
set(CMAKE_CXX_COMPILER "clang++" ) # 显示指定使用的C++编译器
set(CMAKE_CXX_FLAGS "-std=c++11") # c++11
set(CMAKE_CXX_FLAGS "-g") # 调试信息
set(CMAKE_CXX_FLAGS "-Wall") # 开启所有警告
set(CMAKE_CXX_FLAGS_DEBUG "-O0" ) # 调试包不优化
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG " ) # release包优化
8)最后在文件头部添加CMake版本检查
cmake_minimum_required ( VERSION 3.0)
参考链接:
1、https://blog.csdn.net/elloop/article/details/51068788
2、https://blog.csdn.net/elloop/article/details/51127416