编译源码的项目工具

  • C、C++的源码编译:使用make项目管理器

    configure脚本 --> Makefile.in --> Makefile

    相关开发工具:

    autoconf: 生成configure脚本

    automake:生成Makefile.in

  • java的源码编译:使用maven

C语言源代码编译安装过程

利用编译工具,通常只需三个大的步骤

  • ./configure

  (1) 通过选项传递参数,指定安装路径、启用特性等;执行时会参考用户的指定以及Makefile.in文 件生成Makefile

  (2) 检查依赖到的外部环境,如依赖的软件包

  • make 根据Makefile文件,会检测依赖的环境,进行构建应用程序
  • make install 复制文件到相应路径

注意:安装前可以通过查看README,INSTALL获取帮助

编译安装准备

准备:安装相关的依赖包

  • 开发工具:make,gcc(c/c++编译器CNU C Complier)
  • 开发环境:开发库(glibc:标准库),头文件,可安装开发包组 Development Tools
  • 软件相关依赖包

基于最小化安装的系统安装以下相关包

yum install  gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel  vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

编译安装

第一步:运行configure脚本,生成Makefile文件

其选项主要功能:

  • 可以指定安装位置
  • 指定启用的特性

获取其支持使用的选项

./configure --help

选项分类

安装路径设定
--prefix=/PATH:指定默认安装位置,默认为/usr/local/
--sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译
软件特性和相关指定:
Optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
Optional Packages: 可选包
--with-PACKAGE[=ARG] 依赖包
--without-PACKAGE 禁用依赖关系
注意:通常被编译操作依赖的程序包,需要安装此程序包的"开发"组件,其包名一般类似于namedevel-VERSION 第二步:make
第三步:make install

安装后的配置

1、二进制程序目录导入至PATH环境变量中

  编辑文件/etc/profile.d/NAME.sh

export PATH=/PATH/TO/BIN:$PATH

2、相关用户即文件

有些开源软件编译完成后,还需要创建相关的用户及文件

3、导入帮助手册

编辑/etc/man.config|man_db.conf文件,添加一个MANPATH

Linux编译安装-软件的更多相关文章

  1. Linux编译安装软件常见问题及排查

    1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ...

  2. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  3. Linux下安装软件命令详解

    ---------------------------------------------------------------- 或许你对于linux还不够了解,但是一旦你步入公司后,你就会发现lin ...

  4. Linux 编译安装、压缩打包、定时任务

    目录 Linux 编译安装 知识储备: wget命令 编译安装 Linux 压缩打包 gzip压缩 bzip2压缩 tar打包 Linux 定时任务 相关文件及操作 Linux 编译安装 编译安装就是 ...

  5. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  6. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

  7. linux 编译安装PHP模块

    本文移到:http://www.phpgay.com/Article/detail/classid/6/id/54.html  linux 编译安装PHP模块 1.首先你要有你服务器上安装的PHP的版 ...

  8. [CentOS_7.4]Linux编译安装ffmpeg

    [CentOS_7.4]Linux编译安装ffmpeg   安装过程: 下载安装源,配置,编译,安装,设置环境变量. # wget http://www.ffmpeg.org/releases/ffm ...

  9. 转:Linux 编译安装 Mysql5.7

    http://broqiang.com/2017/04/18/Mysql-Install-5.7.18-Linux-Compile/ 原文 Linux 编译安装 Mysql5.7 Ubuntu 下快速 ...

随机推荐

  1. JS的Event各种属性级target/currentTarget/relatedTarget各种目录的解释

    1.Event属性解释:https://developer.mozilla.org/zh-CN/docs/Web/API/Event 2.Event.target/currentTarget/rela ...

  2. 使用过 Redis 分布式锁么,它是什么回事?

    先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了 释放. 这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外  ...

  3. mac-brew

    brew search [TEXT|/REGEX/] 搜索软件 brew (info|home|options) [FORMULA...] 查询软件信息 brew install FORMULA... ...

  4. 设计一个简单的devops系统

    前言 公司设计的RDMS挺好用的,我也照猫画虎简单的设计一个DevOps系统,与大家分享,不足之处欢迎拍砖,以免误人子弟 前置条件 gitlab gitlab-runner k8s 1. gitlab ...

  5. MiL → SiL → PiL → HiL 是什么?

    基于模型的快速原型开发通常分为四个过程:MiL → SiL → PiL → HiL 1. MiL(Model in Loop)模型在环  在PC上基于模型的测试,它的输出是经过验证的控制算法模型.验证 ...

  6. C语言中的bool类型 stdbool.h

    C语言的C99标准中已经可以使用bool类型了,但有些小伙伴可能受制于编译器等原因还无法使用,我就从最新版的VS2019 中,找到了stdbool.h这个头文件的定义,其实就是一堆宏的定义,代码如下: ...

  7. js 关于setTimeout和Promise执行顺序问题

    js 关于setTimeout和Promise执行顺序问题 异步 -- Promise和setTimeout 执行顺序   Promise 和 setTimeout 到底谁先执行 定时器的介绍 Jav ...

  8. 记一些css 3效果

    半透明边框 background-clip: 规定背景的绘制区域 .div { width: 200px; height: 200px; background: blue; border: 10px ...

  9. JavaScript HTML5脚本编程——“历史状态管理”的注意要点

    历史状态管理是现代Web应用开发中的一个难点.在现代Web应用中,用户的每次操作不一定会打开一个全新的页面,因此"后退"和"前进"按钮也就失去了作用,导致用户很 ...

  10. CSS - 定位属性position使用详解(static、relative、fixed、absolute)

    position 属性介绍 (1)position 属性自 CSS2 起就有了,该属性规定元素的定位类型.所有主流浏览器都支持 position 属性. (2)position 的可选值有四个:sta ...