cmake 编写 从实战中学习
cmake
关于cmake 和make 的区别以及什么是cmake这里就不赘述了
实战
下面是我学习sylar 大佬的框架课程中日志模块部分,他写的一个cmake 文件。
其中文件的目录结构为:
bin –二进制
build – 中间文件路径
cmake – cmake 函数文件夹
CMakeLists.txt – cmake 的定义文件
lib – 库的输出路径
sylar – 源代码路径
tests – 测试代码路径
cmake_minimum_required(VERSION 2.8) # 指定使用的版本
project(sylar) # 项目名称 一般和项目文件夹相对应
set(CMAKE_VERBOSE_MAKEFILE ON) # 显示编译的过程
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -rdynamic -O0 -ggdb -std=c++11 -Wall -Wno-deprecated -Werror -Wno-unused-function") # 设置 编译选项 set 设置变量的意思
set(LIB_SRC
sylar/log.cc
) # 设置变量
add_library(sylar SHARED ${LIB_SRC})
# 将LIB_SRC下的文件编译为动态链接库 。 SHARED为共享库 ,不加的话就是静态.a
add_executable(test tests/test.cc) # test为编译后的可执行程序名称, 后面的就是编译文件
add_dependencies(test sylar) # 这是设置依赖项
target_link_libraries(test sylar) # 动态链接库 链接 类似于-lsylar
include_directories(${PROJECT_SOURCE_DIR}/sylar) # 添加头文件的搜索路径 也就是-I
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 可执行文件的输出路径
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) # 设置编译后动态库的路径
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment