Skip to content

源码编译安装

源码编译安装

image-20240419080657575

案例:mariadb编译安装

下载并解压缩源码包:

bash
tarxvfmariadb-10.2.19.tar.gz

源码编译安装mariadb:

bash
cdmariadb-10.2.19/cmake.\-DCMAKE_INSTALL_PREFIX=/app/mysql \-DMYSQL_DATADIR=/data/mysql/ \-DSYSCONFDIR=/etc/ \-DMYSQL_USER=mysql \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \-DWITH_DEBUG=0 \-DWITH_READLINE=1 \-DWITH_SSL=system \-DWITH_ZLIB=system \-DWITH_LIBWRAP=0 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci#make &&make installmake-j8&&makeinstall;date

TIP

提示:如果出错,执行rm -f CMakeCache.txt

FAQ

要区分源码包

带系统发型版本名称的都为二进制包,而只有软件包名称的为源码包。

image-20240419081119888

cmake的用法

bash
yum-yinstallcmake

编译安装说明

本次利用cmake编译,而不是利用传统方法,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译编译选项:https:make# 使用4个并行任务构建make-j4# 使用自动核心数的并行构建make-j

总之,make -j是提高构建效率的有效方式,特别是在处理复杂和大型项目时。希望这些信息对您有所帮助!如果您有其他问题,欢迎继续咨询。

案例:彻底卸载源码编译安装的程序

image-20241230073254612

案例:make test

bash
maketest是什么意思?

make test是一个在软件开发和编译过程中常用的命令,主要用于执行一系列自动化测试,以验证软件的功能和稳定性。以下是对该命令的详细解释:

  1. make命令
  • 目的make是一个构建工具,用于从源代码自动化地编译和构建程序。它通过读取 Makefile文件中的指令,自动化处理编译过程。
  1. test目标
  • 定义:在 Makefile文件中,test通常是一个定义好的目标,用于运行软件的测试用例。
  • 作用:执行 make test时,make会寻找 Makefile中与 test相关的指令,通常执行一些测试脚本或程序,以验证软件的各项功能是否正常。
  1. 功能
  • 验证功能make test可以帮助开发者和用户确认软件在编译之后仍然正常运行,所有功能符合预期。
  • 自动化测试:多数现代软件项目会包含自动化测试框架,执行 make test会运行这些自动化测试,检查代码的正确性和稳定性。
  • 发现问题:通过测试,可以在发布软件之前发现潜在的错误或缺陷,从而提高软件的质量。
  1. 注意事项
  • 可能性:并不是所有的软件包都包含 test目标,具体取决于开发者在 Makefile中的设计。
  • 测试时间:运行测试可能需要一些时间,具体取决于测试的数量和复杂性。
  • 输出结果:执行 make test后,会输出测试结果,包括通过和失败的测试数量,通常会提供详细信息,以帮助用户理解测试的过程和结果。

总结

make test是一个重要的命令,用于确保编译后的软件能够正常工作,帮助开发者在软件发布之前提高其稳定性和可靠性。通过运行自动化测试,开发团队可以更好地维护代码质量,确保满足用户需求。如果您在使用该命令时遇到任何问题,可以查看测试输出信息,以获得更多上下文来进行故障排除。

最近更新