C++搭建集群聊天室(四):工程统帅神器 Cmake,我爱死它了_c++

“咳咳,讲了这么久,还是不讲点知识点,一直就配置环境配置环境的,烦不烦呐!!!”

快了快了,这个环境搭建完就进主题


环境搭建

1、在插件市场下载 cmake 和 cmake-tools,上一篇有讲过的。

2、右击 cmake-tools,选择 extension settings,打开,填写:
C++搭建集群聊天室(四):工程统帅神器 Cmake,我爱死它了_linux_02

其中那个值是 cmake 在远程主机上的位置,如果不放心的话可以使用命令 whereis cmake 来确定。

3、ok之后,我们在项目文件夹下创建一个名为 CMakeLists.txt 的文件,放在和代码文件同级目录下。


CMAkeLists.txt 文件编写示例

此处我们以 hello.cpp 做例子。

#include<iostream>

using namespace std;

int main(){

    cout<<"hello"<<endl;

    return 0;
}
cmake_minimum_required(VERSION 3.0) # 最低版本
project(main)   # 给这个工程一个名字,这不是可执行文件的名字,是工程的名字

# 配置编译选项
# set(CMAKE_CXX_FLAGS $(CMAKE_CXX_FLAGS) -g)  # 添加编译选项
# 我这里一 -g 就不行,目前还不知道为啥

# 配置头文件搜索路径
# include_directories('如果想在默认路径之外再加路径,就填在这里')

# 配置库文件搜索路径
# link_directories('意思同上')

# 设置需要编译的源文件列表
set(SRC_LIST hello.cpp)  # 可放多个,但是没必要

# 把 . 指定路径下的所有源文件放入一个变量名中
# aux_source_directory(. SRC_LIST)

# 配置可执行文件名
add_executable(hello ${SRC_LIST})
 
#生成库
# add_library('库名')

# 需要链接的外库
# target_link_libraries(hello 库名自己填)   # 如果库之间有相互依赖,注意把被依赖的放前面

写的可还详细?

建议把这俩测试文件放到一个专门的文件夹里面。

进入该文件夹,终端运行:cmake .

C++搭建集群聊天室(四):工程统帅神器 Cmake,我爱死它了_原力计划_03

一下子生成好多个东西,不过还看到一个Makefile文件了,接下来make。


专业打包

看一下以下几个文件(夹):

bin
lib
include
src
build
excample
thirdparty	//第三方库
CmakeLists.txt
ReadMe.md

是吧,看着我们刚刚make完那一地鸡毛,有没有觉得自惭形秽。

mkdir build
cmake ..
make

好了,这些东西都到build里面了。

但是,还是很乱。

CMakeLists.txt 里面写:

# 设置可执行文件存放的目录

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

做个示范。
其他的再融会贯通以下,被那个 -g 弄得有点脑阔疼,又这么晚了,今晚还有四份文档要写,一个会要开。。。