外部构建

Cmake可生成跨平台的项目构建文件,在Linux下可通过外部构建生成Makefile,十分容易地使得代码和目标文件分离。 以下面文件目录结构为例:
|–src
|–CmakeLists.txt
|–build
|–resources

# 让所有生成文件产生在build目录中
cd build
cmake ..
make

举例

# 指明所需cmake最低版本
cmake_minimum_required(VERSION 3.1)  


# 指明项目名,后台自动生成<projectname>_BINARY_DIR和<projectname>_SOURCE_DIR
project(miniserver)


# 编译参数
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")


# Google Test
include_directories("/home/sparrow/lib/gtest-1.7.0/include")
link_directories("/home/sparrow/lib/gtest-1.7.0/lib/.libs")


# set命令定义变量,后面通过${...}只用变量
set(SOURCE_FILES
    src/utility/rio.cc)
# add_library生成库文件
# 无论生成库文件还是可执行文件,都需要指明需要的源文件
add_library(rio ${SOURCE_FILES})


# add_executable生成可执行文件
# 通过target_link_libraries指明链接的静态库和动态库
add_executable(rio_test ./test/utility/rio_test.cc)
target_link_libraries(rio_test rio gtest gtest_main pthread)



Zhu

有问题欢迎发邮件交流