配置文件
mkdir chat
cd chat
mkdir bin
mkdir build
mkdir include
touch CMaKeLists.txt
mkdir src
mkdir other
mkdir thridparty
cd include
mkdir server(包含头文件)
cd ../src
mkdir server
mkdir client
touch CMakeLists.txt
CMakeList的书写
cmake_minimum_required(VERSION 3.0)
project(chat)
# 配置编译选项
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/server/db)
include_directories(${PROJECT_SOURCE_DIR}/include/server/model)
include_directories(${PROJECT_SOURCE_DIR}/include/server/redis) include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
# 加载子目录
add_subdirectory(src)
src的cmakelists
add_subdirectory(server)
add_subdirectory(client)
src/server and src/client
# 定义了SRC_LIST变量,包含当前目录下所有的源文件
aux_source_directory(. SRC_LIST)
aux_source_directory(./model MODEL_LIST)
aux_source_directory(./redis REDIS_LIST)
# 指定生成可执行文件
add_executable(ChatServer ${SRC_LIST} ${MODEL_LIST} ${REDIS_LIST})
# 指定可执行文件链接时需要的库文件
target_link_libraries(ChatServer muduo_net muduo_base -L/usr/lib64/mysql -lmysqlclient hiredis pthread)
#以后解释
# 定义了SRC_LIST变量,包含当前目录下所有的源文件
2 aux_source_directory(. SRC_LIST)
3
4 # 指定生成可执行文件
5 add_executable(ChatClient ${SRC_LIST})
6 # 指定可执行文件链接时需要的库文件
7 target_link_libraries(ChatClient pthread)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129727.html