• make命令应用


    记录:345

    场景:在CentOS 7.9操作系统上,使用make命令编译C语言开发的软件源码;使用make install命令安装软件;解决直接使用C语言源码部署软件的需求。比如部署redis、PostgreSQL数据库等。

    版本:

    操作系统:CentOS 7.9

    Redis版本:redis-6.2.7

    1.基础环境

    本例使用redis-6.2.7为例,应用make命令。

    1.1下载redis-6.2.7.tar.gz

    下载地址:http://download.redis.io/releases

    下载命令:wget http://download.redis.io/releases/redis-6.2.7.tar.gz

    解析:下载完成后,redis-6.2.7.tar.gz包在当前目录。

    1.2 配置gcc环境

    (1)安装gcc

    安装命令:yum  install -y devtoolset-9-gcc devtoolset-9-gcc-c++  devtoolset-9-binutils gcc

    (2)配置gcc

    内容:echo 'source /opt/rh/devtoolset-9/enable'>>/etc/profile

    生效:source /etc/profile

    (3)查看gcc版本

    命令:gcc --version

    打印信息:gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)

    1.3解压redis-6.2.7.tar.gz

    命令:tar -xzvf /home/apps/software/redis-6.2.7.tar.gz -C /home/apps/module/

    解析:解压后,Redis相关内容在/home/apps/module/redis-6.2.7。

    2.命令应用

    (1)编译

    编译命令:make -C /home/apps/module/redis-6.2.7

    解析:编译redis后,在redis-6.2.7/src目录下生成.o文件、redis-server等文件,生成./deps文件夹。

    (2)安装

    安装命令:make install PREFIX=/home/apps/module/redis-6.2.7

    解析:把redis-6.2.7指定安装在/home/apps/module/redis-6.2.7,会在此目录下生成bin目录,在bin目录下就是安装软件。

    (3)清空

    清空命令:make clean

    解析:使用此命令把编译的内容清空。

    (4)查看版本

    命令:make -v

    解析:查看make的版本,本例:GNU Make 3.82。

    3.命令帮助手册

    命令:make --help

    解析:查看make支持全部命令和选项,在实际工作中,查看这个手册应该是必备之选。

    1. Usage: make [options] [target] ...
    2. Options:
    3. -b, -m Ignored for compatibility.
    4. -B, --always-make Unconditionally make all targets.
    5. -C DIRECTORY, --directory=DIRECTORY
    6. Change to DIRECTORY before doing anything.
    7. -d Print lots of debugging information.
    8. --debug[=FLAGS] Print various types of debugging information.
    9. -e, --environment-overrides
    10. Environment variables override makefiles.
    11. --eval=STRING Evaluate STRING as a makefile statement.
    12. -f FILE, --file=FILE, --makefile=FILE
    13. Read FILE as a makefile.
    14. -h, --help Print this message and exit.
    15. -i, --ignore-errors Ignore errors from recipes.
    16. -I DIRECTORY, --include-dir=DIRECTORY
    17. Search DIRECTORY for included makefiles.
    18. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
    19. -k, --keep-going Keep going when some targets can't be made.
    20. -l [N], --load-average[=N], --max-load[=N]
    21. Don't start multiple jobs unless load is below N.
    22. -L, --check-symlink-times Use the latest mtime between symlinks and target.
    23. -n, --just-print, --dry-run, --recon
    24. Don't actually run any recipe; just print them.
    25. -o FILE, --old-file=FILE, --assume-old=FILE
    26. Consider FILE to be very old and don't remake it.
    27. -p, --print-data-base Print make's internal database.
    28. -q, --question Run no recipe; exit status says if up to date.
    29. -r, --no-builtin-rules Disable the built-in implicit rules.
    30. -R, --no-builtin-variables Disable the built-in variable settings.
    31. -s, --silent, --quiet Don't echo recipes.
    32. -S, --no-keep-going, --stop
    33. Turns off -k.
    34. -t, --touch Touch targets instead of remaking them.
    35. -v, --version Print the version number of make and exit.
    36. -w, --print-directory Print the current directory.
    37. --no-print-directory Turn off -w, even if it was turned on implicitly.
    38. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
    39. Consider FILE to be infinitely new.
    40. --warn-undefined-variables Warn when an undefined variable is referenced.
    41. --warn-undefined-functions Warn when an undefined user function is called.
    42. This program built for x86_64-redhat-linux-gnu
    43. Report bugs to

    以上,感谢。

    2022年11月27日

  • 相关阅读:
    【Java技术专题】「Java8技术盲区」函数接口字典-看看还有哪些你所不知道函数接口
    vue-element-admin 集成框架解读----快速入门
    使用transformers增加token
    vue项目|在弹窗中引入uchart图表子组件不显示
    鸿蒙原生App开发之:套用混合app开发思路
    spark中生成时间序列数据的函数stack和sequence
    【译】介绍 MSTest Runner – CLI、Visual Studio 等
    (三)CSS前端开发面试会问到的问题有哪些?
    闭包——回调函数
    [架构之路-220]:与机器打交道VS与人打交道,计算机系统VS人体系统,计算机网络VS人类社会:架构、通信、语言、网络、智能、情感、生命
  • 原文地址:https://blog.csdn.net/zhangbeizhen18/article/details/128068988