本文在前提为:假设你已经安装过cmake
最基础最简单的模板
- 在想要编译的代码的当前目录下新建一个CMakeLists.txt
里面填写(#为注释)
#cmake最低版本需求,不加入此行会受到警告消息
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#项目名称
PROJECT(server)
#将""中的文件一起编译生成可执行文件server
ADD_EXECUTABLE(${PROJECT_NAME} "main.cc" "channel.cc" "channel.h" "buffer.cc" "buffer.h" "EventLoop.cc" "EventLoop.h")
#编译时加入其他程序库
set(CMAKE_CXX_FLAGS "-g -std=c++11 -lpthread")
~
- 在当前目录下新建一个目录build
mkeir build
- 进入
bulid
目录,执行cmake
cd build
cmake ..
效果图为:
在 /build 目录下的文件为:
- 执行
make
,生成可执行文件server
make
- 执行生成的可执行文件,即可完成编译运行程序
./server
源代码分布情况
.
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ │ ├── 3.11.2
│ │ │ ├── CMakeCCompiler.cmake
│ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ ├── CMakeSystem.cmake
│ │ │ ├── CompilerIdC
│ │ │ │ ├── a.out
│ │ │ │ ├── CMakeCCompilerId.c
│ │ │ │ └── tmp
│ │ │ └── CompilerIdCXX
│ │ │ ├── a.out
│ │ │ ├── CMakeCXXCompilerId.cpp
│ │ │ └── tmp
│ │ ├── cmake.check_cache
│ │ ├── CMakeDirectoryInformation.cmake
│ │ ├── CMakeOutput.log
│ │ ├── CMakeTmp
│ │ ├── feature_tests.bin
│ │ ├── feature_tests.c
│ │ ├── feature_tests.cxx
│ │ ├── Makefile2
│ │ ├── Makefile.cmake
│ │ ├── progress.marks
│ │ ├── server.dir
│ │ │ ├── build.make
│ │ │ ├── cmake_clean.cmake
│ │ │ ├── CXX.includecache
│ │ │ ├── DependInfo.cmake
│ │ │ ├── depend.internal
│ │ │ ├── depend.make
│ │ │ ├── flags.make
│ │ │ ├── link.txt
│ │ │ ├── main.cc.o
│ │ │ └── progress.make
│ │ └── TargetDirectories.txt
│ ├── cmake_install.cmake
│ ├── Makefile
│ └── server
├── CMakeLists.txt
├── main.cc
├── Channel.cc
├── Channel.h
├── buffer.cc
├── buffer.h
├── EventLoop.cc
├── EventLoop.h
└── README.md