2 编译环境

1、配置编译机

在Mac和Windows上,交叉编译linux版本的服务程序也是可以的,不过一般公司会配置专门的编译机,代码提交到git(或svn)库里,由编译机pull并编译。

开发和正式编译的环境应尽量隔离,可以避免因开发漏提交,或配置不同导致的项目编译异常。一份合格的代码,在每个编译环境下,产出的程序都应该是一致的。

随着流程的标准化,公司基本都会推进自动化编译流程,将开发人员和编译环境进一步解耦,只需在网页上操作,即可进行编译和导出。

接下来,我们在Rocky上搭建编译环境。

首先,通过ssh登陆到Rocky服务器上。

1.1 更新系统

首先更新系统,保证系统内补丁包处于最新状态

sudo dnf update
sudo dnf clean all

上次元数据过期检查:1:16:28 前,执行于 2023年01月11日 星期三 18时50分52秒。
依赖关系解决。
================================================================================
 软件包            架构   版本                                  仓库       大小
================================================================================
安装:
 kernel            x86_64 5.14.0-162.6.1.el9_1.0.1              baseos    1.8 M
升级:
 bpftool           x86_64 5.14.0-162.6.1.el9_1.0.1              baseos    2.6 M
 firefox           x86_64 102.6.0-1.el9_1                       appstream 106 M
 glx-utils         x86_64 8.4.0-12.20210504git0f9e7d9.el9.0.1   appstream  40 k
 kernel-tools      x86_64 5.14.0-162.6.1.el9_1.0.1              baseos    2.1 M
 kernel-tools-libs x86_64 5.14.0-162.6.1.el9_1.0.1              baseos    1.9 M
 krb5-libs         x86_64 1.19.1-24.el9_1                       baseos    718 k
 python3-perf      x86_64 5.14.0-162.6.1.el9_1.0.1              baseos    2.0 M
 rocky-gpg-keys    noarch 9.1-1.11.el9                          baseos     12 k
 rocky-release     noarch 9.1-1.11.el9                          baseos     22 k
 rocky-repos       noarch 9.1-1.11.el9                          baseos     12 k
 tzdata            noarch 2022g-1.el9_1                         baseos    427 k
安装依赖关系:
 kernel-core       x86_64 5.14.0-162.6.1.el9_1.0.1              baseos     45 M
 kernel-modules    x86_64 5.14.0-162.6.1.el9_1.0.1              baseos     33 M

事务概要
================================================================================
安装   3 软件包
升级  11 软件包

总下载:196 M
确定吗?[y/N]

根据提示,安装完毕!

1.2 安装GCC

Rocky Linux和许多其他基于RedHat的Linux发行版,都附带了一个名为“Development tools”(开发工具)的包,用于在Linux系统上构建和编译软件。此包包含GCC、g++、make、libtool、rpmbuild、Autoconf等。可以通过运行以下命令检查“Development tools”包是否适用于当前系统。

查看输出

在可用组中包含开发工具,可以继续安装

控制台展示所有需要安装的工具列表及依赖关系

安装完成后,通过以下命令查看已安装的组件

查看gcc版本信息

查看gcc位置

1.3 安装cmake

从上面的软件包中可以看到,cmake并没有被默认安装,通过以下命令实现

安装完成后,查看版本信息

2、更新代码编译

在安装Development Tools时,已经安装了git,我们可以查看git版本

通过git将代码pull到本地,我们将代码放到目录 /data/code

跳转到data目录,创建code文件夹

使用git clone 命令将代码更新到本地

进入到simpleservice/build 目录下,执行"cmake ..",因为CMakeLists文件与build目录同层,因此返回上层查找,而生成的临时文件都放在build目录下。

然后执行make命令,生成libServiceBase.a文件。

进入chatservice目录,创建lib和build目录,拷贝libServiceBase.a文件到lib目录下

与simpleservice相同,进入build目录,执行"cmake ..",然后执行make命令。

在bin目录下生成ChatService程序。

将程序从服务器拷贝到本地,新开一个终端,执行scp命令

至此,linux版本的chatservice编译完成。

Last updated