项目工程目录
聊天服务器程序和客户端程序都在一个工程里面,最后在bin生成2个可执行文件,一个是ChatServer,一个是ChatClient
1. 项目根目录下的CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(main)
# 配置编译选项,-g表示调试
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)
#配置最终可执行文件输出路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#配置头文件搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/include/server)
include_directories(${PROJECT_SOURCE_DIR}/include/client)
include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
#加载子目录,在src下找CMakeLists.txt执行
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
执行时会去src目录下找CMakeLists.txt文件,所以我们在src下创建CMakeLists.txt
2. src下的CMakeLists.txt
add_subdirectory(server)
3. - src/server下的CMakeLists.txt
#定义了一个SRC_LIST变量,包含了该目录下所有源文件
aux_source_directory(. SRC_LIST)
#指定生成可执行文件
add_executable(ChatServer ${SRC_LIST})
#指定可执行文件链接时需要的库文件
target_link_libraries(ChatServer muduo_net muduo_base pthread)