C++项目实战——sylar服务器框架:环境配置

459 阅读12分钟

安装虚拟机

sylar 服务器是基于 Linux 平台开发的,所以我们使用虚拟机创建 Linux 主机。

安装虚拟机的教程网上有很多,不再赘述,我这里安装的是 Ubuntu20.04。

安装依赖库

(一)Boost 库安装

Boost 是一个由 C++ 社区开发和维护的一个开源的、跨平台的 C++ 库集合。Boost 库提供了许多功能强大且经过广泛测试的工具和组件,用于增强 C++ 语言的功能和性能。以下是 Boost 库的一些主要功能: 泛型编程支持: Boost 提供了许多支持泛型编程的工具,如模板元编程(Template Metaprogramming)和泛型算法,使得 C++ 能够更灵活地进行编程。 智能指针: Boost 包含了智能指针的实现,如 shared_ptr 和 scoped_ptr,用于帮助管理动态分配的内存,防止内存泄漏。 容器和数据结构: Boost 提供了一些非常灵活和高性能的容器,如 unordered_map、unordered_set,以及其他一些数据结构和算法。 多线程和并发编程: Boost 提供了多线程编程的支持,包括线程管理、同步原语(如互斥锁、条件变量)、线程间通信等。 正则表达式: Boost 包含了一个强大的正则表达式库,使得在 C++ 中进行复杂的字符串匹配和处理变得更加方便。 数学和算法: Boost 包含了一些数学库和算法库,用于处理数值计算和优化问题。 文件系统操作: Boost 文件系统库提供了对文件系统进行操作的功能,使得文件和目录的处理更加便捷。 网络编程: Boost.Asio 提供了异步网络编程的支持,使得开发网络应用变得更加高效。 总体而言,Boost 提供了许多丰富而实用的工具,使得 C++ 编程更加方便、高效,并且代码更具可移植性。很多 Boost 的组件在 C++ 标准库中得到了采纳,因此 Boost 也可以被视为 C++ 标准库的一个先导。

按顺序执行以下命令:

① 更新 Ubuntu Linux

sudo apt update && sudo apt upgrade

  • sudo apt update: 更新系统中软件包的本地索引。它会从已配置的软件源中获取最新的软件包信息,以便系统知道是否有更新可用。

  • sudo apt upgrade: 升级系统中所有已安装的软件包到最新版本。它会检查刚更新的索引列表,并安装所有可以升级的软件包。

② 安装开发者工具

sudo apt-get install build-essential g++ python3-dev autotools-dev libicu-dev libbz2-dev libboost-all-dev

  • build-essential: 安装一组用于编译软件的基本工具包,包括 gccg++make 等编译工具。

  • g++ : GNU C++ 编译器,编译 C++ 代码的必要工具。

  • python3-dev: 包含用于编译 Python C 扩展的头文件和静态库。

  • autotools-dev: 自动构建工具相关的开发文件,用于构建从源代码编译的软件。

  • libicu-dev: ICU(International Components for Unicode)的开发库,支持多语言文本处理。

  • libbz2-dev: bzip2 的开发库,支持使用 bzip2 算法进行压缩和解压缩。

  • libboost-all-dev: 安装所有 Boost C++ 库的开发包,Boost 是一组功能强大的 C++ 库。

③ 下载 Boost C++ 库

wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz

若在虚拟机中无法连接到该网站,可在物理机访问(使用魔法)该网站并下载安装包,再将其传入虚拟机。

④ 解压下载的 tar 文件

⑤ 切换到解压后的目录,设置 Boost 的 booststrap

cd boost_1_80_0

./bootstrap.sh --prefix=/usr/

运行给定的命令,该命令将启动存在于 Boost 提取文件夹中的 Bootstrap 脚本。它将开始构建 B2 引擎。另外,它会将编译后的库文件保存在/usr/include/boost

⑥ 安装 Boost

sudo ./b2 install

构建 Boost C++ 库

构建完 b2 引擎后,您将在 Boost 目录中看到一个名为b2的可执行文件。我们必须运行它来开始构建 Boost C++ 库。

(二)安装Cmake

sudo apt-get install cmake

CMake(Cross-platform Make)是一个跨平台的构建系统生成工具。它用于自动化软件项目的构建过程,提供了一种独立于编译器和操作系统的方式来描述项目的构建规则。以下是 CMake 的主要功能和用途: 跨平台构建: CMake 允许开发者在不同的操作系统上(如Windows、Linux、macOS)使用相同的构建描述文件生成适用于特定平台的构建系统文件(如Makefile、Visual Studio项目文件等)。 简化构建过程: CMake 的配置文件使用一种简洁且易读的语言,描述了项目的结构、依赖关系和构建规则,使得构建过程更加清晰和易于维护。 支持多编译器: CMake 不依赖于特定的编译器,允许项目在不同的编译器中进行构建,例如GCC、Clang、Microsoft Visual C++等。 模块化构建: CMake 支持模块化构建,允许将项目分解为多个子项目,每个子项目可以有自己的构建规则和依赖关系。 生成器的选择: CMake 支持多种生成器,例如Make、Ninja、Visual Studio等,开发者可以选择合适的生成器用于构建项目。 自动发现依赖: CMake 能够自动检测项目所依赖的库和头文件,简化了项目的配置过程。 定制构建选项: CMake 允许开发者定义和定制不同的构建选项,例如调试模式、发布模式等。 生成安装目标: CMake 可以生成用于将项目安装到系统的安装目标,使得用户可以方便地部署和使用软件。 总的来说,CMake 提供了一个统一的、跨平台的构建系统,使得软件项目的构建过程更加可维护和灵活。许多开源项目都使用 CMake 作为其构建工具,以便在不同平台上轻松构建和部署。

(三)安装 yaml-cpp

yaml-cpp 是一个用于解析和生成 YAML 格式数据的 C++ 库。YAML(YAML Ain’t Markup Language)是一种人类可读且可编写的数据序列化格式,常用于配置文件和数据交换。yaml-cpp 使得在 C++ 程序中处理 YAML 数据变得更加方便。 以下是 yaml-cpp 库的一些主要功能和用途: 解析 YAML: yaml-cpp 提供了能够将 YAML 格式的文本解析为 C++ 对象的功能。这使得你可以在程序中方便地读取和操作 YAML 数据。 生成 YAML: 除了解析 YAML,yaml-cpp 也支持将 C++ 对象转换为 YAML 格式的文本。这对于创建和输出 YAML 格式的配置文件非常有用。 与 STL 容器交互: yaml-cpp 可以与 C++ 标准模板库(STL)中的容器进行交互,轻松地将数据从 YAML 转换为 C++ 数据结构,反之亦然。 灵活性和可配置性: 库提供了一些选项和配置,使用户能够自定义解析和生成的行为,以满足特定的需求。 跨平台性: yaml-cpp 是跨平台的,因此可以在不同操作系统上使用。 使用 yaml-cpp 可以简化处理配置文件、读取用户输入或与其他系统进行数据交换的任务。它的语法简洁、易读,使得人们可以更直观地表示和编辑数据。

执行下面的命令:

  • git clone https://github.com/jbeder/yaml-cpp.git

从 GitHub 上下载源码编译安装。

  • cd yaml-cpp && mkdir build && cd build

进入源码目录并创建一个 build 目录

  • cmake -DYAML_BUILD_SHARED_LIBS=on ..

cmake 一下,选项表示生成共享库..表示 cmake 所需的 CMakeList.txt 在上一级目录中

  • sudo make

  • sudo maek install

  • sudo ldconfig

更新共享库

(四)安装 openssl 开发库

OpenSSL 是一个开源的软件库,提供了一组用于加密、解密、签名、验证等操作的加密算法和协议实现。它广泛用于网络通信、安全协议实现以及加密通信的开发中。如果你想进行 OpenSSL 的开发,你可能需要使用 OpenSSL 提供的开发库。 以下是一些常见的 OpenSSL 开发库: libcrypto: 提供了一组加密和哈希算法,包括对称加密、非对称加密、哈希函数等。开发者可以使用这些功能进行数据加密、解密、签名和验证等操作。 libssl: 提供了安全套接字层(SSL)和传输层安全性(TLS)协议的实现。开发者可以使用这个库来实现安全的通信协议,如加密的客户端-服务器通信。 在进行 OpenSSL 开发时,你通常需要链接这两个库,即 libcrypto 和 libssl。你可以在编译时使用 -lssl -lcrypto 来链接这两个库。 请注意,OpenSSL 的 API 和用法可能会有一些变化,尤其是在不同版本之间。因此,在使用 OpenSSL 开发库时,建议参考相应版本的文档和示例代码。

apt-get install libssl-dev

(五)安装 Apache ab 测试工具 apache2-utils

apache2-utils 是与 Apache HTTP Server 相关的一组实用工具的软件包。这个软件包通常包括了一些用于配置、管理和测试 Apache HTTP Server 的命令行工具。其中一些工具包括: ab (Apache Benchmark): 用于进行 Apache HTTP 服务器的性能测试,可以模拟多个并发连接。 htpasswd: 用于创建和更新 Apache HTTP 服务器的密码文件,通常用于基本身份验证(Basic Authentication)。 htdigest: 用于创建和更新 Apache HTTP 服务器的摘要文件,也用于身份验证。 这些工具使得在 Apache HTTP 服务器环境中进行一些常见的配置和性能测试任务变得更加方便。如果你在使用 Apache HTTP Server,并且希望使用这些实用工具,你可以安装 apache2-utils 软件包。

apt install apache2-utils

(六)安装 graphviz

Graphviz 是一个用于绘制图形的开源工具集。它支持各种图形类型的创建,包括有向图(digraphs)和无向图(graphs)。Graphviz 提供了一组命令行工具和库,使得用户可以通过简单的文本描述来生成各种复杂的图形。 主要特点和用途包括: 图的可视化: Graphviz 主要用于创建和可视化图形结构。这些图形可以表示网络拓扑、软件架构、流程图、组织结构等。 文本描述语言: Graphviz 使用一种简单的文本描述语言来定义图形结构。这种语言被称为 DOT 语言,通过描述节点、边、属性等信息,用户可以轻松创建图形。 多种布局算法: Graphviz 提供了多种布局算法,用于确定图形中节点和边的相对位置。这包括层次布局、圆形布局、树形布局等。 输出格式支持: 生成的图形可以以多种格式输出,如 PNG、SVG、PDF 等。这使得用户可以在不同的应用场景中使用生成的图形。 开源和跨平台: Graphviz 是一个开源项目,支持多种操作系统,包括 Linux、Windows、macOS 等。 Graphviz 在许多领域中得到了广泛的应用,包括软件工程、网络分析、系统建模、组织图等。通过简单的文本描述,开发者和研究人员可以轻松创建和共享图形化的信息。

apt install graphviz

(七)安装 doxygen

Doxygen 是一个用于自动化文档生成的工具,主要用于 C++ 程序,但也支持其他一些编程语言。它能够从代码中提取注释,并生成多种格式的文档,如 HTML、PDF、LaTeX 等,以便开发者能够更方便地阅读和理解代码。 Doxygen 的主要特点和用途包括: 提取注释: Doxygen 能够从源代码中提取特定格式的注释,这些注释通常是基于特殊标记的。标记的格式使得开发者能够为代码中的函数、类、变量等元素添加文档注释。 生成多种输出格式: Doxygen 支持生成多种格式的文档,包括 HTML、LaTeX、PDF 等。这使得开发者可以选择最适合其需求的文档格式。 生成交互式文档: Doxygen 生成的文档通常是交互式的,允许用户通过链接和搜索来浏览代码和文档。 支持多种编程语言: 尽管主要用于 C++,Doxygen 也支持其他编程语言,如 C、Objective-C、Java、Python 等。 图形化表示: Doxygen 可以生成各种图形,如类图、调用图、继承图等,以帮助开发者更好地理解代码的结构和关系。 易于配置: Doxygen 提供了丰富的配置选项,允许开发者根据项目的需要进行定制。 使用 Doxygen 可以使代码文档化更为简便,帮助项目团队和其他开发者更容易地理解和使用代码。

apt install doxygen

VsCode 远程连接

(一)虚拟机安装 OpenSSH 服务

在虚拟机上,使用以下命令安装 OpenSSH 服务器:

sudo apt-get update

sudo apt-get install openssh-server

启动并检查 SSH 服务:

sudo systemctl start ssh

sudo systemctl enable ssh 设置开机自启

sudo systemctl status ssh 查看服务状态

如果一切正常,状态应显示为 active(running),之后按 q 退出状态显示

(二)VSCode 远程连接 SSH

  • 安装插件 Remote - SSH

image.png

  • 配置主机信息

按以下顺序点击:

image.png

第一行 Host 随便填, 第二行是虚拟机的 ip 地址,第三行是虚拟机的用户名

image.png

ip 地址的查看命令:ip addr show

用户名查看命令:whoami

  • 连接 先点击刷新,然后点击箭头:在当前窗口中连接

image.png

之后选择 Linux 平台,输入密码后进行连接:

image.png

在文件选项中即可访问虚拟机中的文件:

image.png

参考资料

C++后端开发之Sylar学习一:配置环境_sylar环境配置-CSDN博客

C++后端开发之Sylar学习二:配置VSCode远程连接Ubuntu开发-CSDN博客