集群聊天服务器----CMake的使用
CMake简介
使用简单方便,可以跨平台,构建项目编译环境。尤其是比直接写Makefile简单很多,可以通过简单的CMake生成负责的Makefile文件。
安装
ubuntu上直接执行sudo apt install cmake即可安装成功,可以通过cmake -version查看其版本:
sudo apt install cmake
cmake -version
配置
cmake_minimum_required(VERSION 3.0)
project(main)# 配置编译选项
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)# 配置头文件搜索路径
# include_directories()# 配置库文件搜索路径
# link_directories()# 设置需要编译的源文件列表
set(SRC_LIST muduo_server.cpp)# 把指定路径下的所有源文件名字放入变量名SRC_LIST里面
# aux_source_directory(. SRC_LIST)add_executable(server ${SRC_LIST})
# 表示server这个目标程序,需要连接muduo_net muduo_base pthread这三个库文件
target_link_libraries(server muduo_net muduo_base pthread)
事例:
如果需要编译的有多个源文件,可以都添加到add_executable(main main.cpp test.cpp)
列表当中,但是如果源文件太多,一个个添加到add_executable
的源文件列表中,就太麻烦了,此时可以用aux_source_directory(dir var)
来定义源文件列表,使用如下:
cmake_minimum_required (VERSION 2.8)
project (demo)
aux_source_directory(. SRC_LIST) # 定义变量,存储当前目录下的所有源文件
add_executable(main ${SRC_LIST})
aux_source_directory()
也存在弊端,它会把指定目录下的所有源文件都加进来,可能会加入一些我们不需要的文件,此时我们可以使用set
命令去新建变量来存放需要的源文件,如下:
cmake_minimum_required (VERSION 2.8)
project (demo)
set(SRC_LIST./main.cpp./test.cpp)
add_executable(main ${SRC_LIST})
运行演示
服务端:
客户端: