linux下c语言源码编译
一、源码编译过程
源码 ---》 预处理 ---》 编译 ---》 汇编 ---》 链接 ---》执行
我们可以把它分为三部分来完成: ./configure ---> make ---> make install。其中,make完成了编译汇编的过程,是根据makefile文件来完成的;makefile是configure根据makefile.in的模板来生成的;makefile.in是由一个叫做automake的工具生成的。make install执行的过程是把编译好的二进制文件复制到指定目录。
二、安装nginx的过程
1)第一步:./configure [option] # 常用参数如下,若想了解,使用--help查看即可
作用:1.用户可以通过选项传递参数给configure脚本,一指定启动的功能特性、安装路径;二configure脚本在执行过程中会参考用户的指定以及makefile.in文件来生成makefile文件。2、检查程序指定要启用的功能特性锁依赖的外部环境。
# 首先,我们按照好的参数,进行makefile文件的生成,会出现以下结果:(由于缺少gcc编译器)
解决方法: yum install gcc -y # 安装gcc编译器
# 当编译器安装好之后,再次执行操作,会出现另一个问题(缺少依赖包):
解决方法: yum install -y pcre-devel.x86_64
解决方法: yum install -y openssl-devel
# 依赖包解决之后,再次执行命令,则会生成makefile文件
2)make
作用:它会执行真正的编译操作,但make本身并不是编译器,它只是一个项目构建工具;make会根据生成的makefile文件 ,调用编译器gcc来编译应用的程序(生成机器语言) 。
3)make install
作用:在make执行完成之后进行的操作,它会在当前目录下创建出已经编译完成的目标二进制格式的程序(包含二进制程序,库文件,配置文件、帮助文档等);而make install则进行安装已经编译好的程序包(二进制程序、库文件、配置文件、帮助文档等)并复制到用户指定的各个目录下。
注意:1.我们在进行源码包的操作之前,首先要在官网上下载源码包(一般为bz2或gz形式,若包中含有install文档可以进行查看),接着在目录下解压源码包,解压一般使用命令: tar zxf 软件包名。2、上面make之后,可以使用make clean 将编译的参数清空,接着重新make。3、若configure发现错误,可使用makedistclean,将configure参数全部清空,接着重新./configure --》 make ---》 make install。
linux下c语言源码编译的更多相关文章
- Linux下搭建redis(源码编译)
[准备环境] Linux centos7 redis下载包 地址:http://www.redis.cn/download.html 前往下载稳定版本 [步骤] 1.下载成功后 把包上传到服务器 ...
- nginx在linux下安装(源码编译)
下载 http://nginx.org/en/download.html 安装 安装依赖 yum -y install gcc gcc-c++ zlib zlib-devel pcre-devel o ...
- linux下获取软件源码包 centos/redhat, debian/ubuntu
linux下获取软件源码包 centos/redhat, debian/ubuntu centos下: 1. yum install yum-utils 主要为了获取yumdownloader 2. ...
- Linux 安装node.js ---- 源码编译的方式
一 : 普通用户: 安装前准备环境: 1.检查Linux 版本 命令: cat /etc/redhat-release 2.检查 gcc.gcc-c++ 是否安装过 命令: rpm -q gcc rp ...
- Win下Jenkins-2.138源码编译及填坑笔记
源码编译篇 1. 安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...
- linux下对rpm源码手工打补丁
前言 通常情况rpm包组件管理方式下的linux环境,常用打补丁的方式只有一种:修改spec文件定义的Patch和patch字段,其实spec文件中调用的底层命令还是patch. 因为业务需要要编译 ...
- linux软件安装(rpm,源码编译)
1.rpm(redhat package manager)管理器主要目的在于解决软件的安装.卸载.升级.查询.验证等,例如升级过程中,保留软件的配置文件,安装过程中,检查软件依赖的库文件,以及卸载过程 ...
- windows10下如何进行源码编译安装tensorflow
1.获取python3.5.x https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe 2.安装python3.5.x,默认安装即 ...
- redis在centos7下安装(源码编译)
下载 地址:http://www.redis.cn/download.html 下载稳定版本 把安装包上传到服务器 linux下安装 解压 进入解压后的目录,编译 创建目录,安装并指定目录 修改配置 ...
随机推荐
- 【Python】__slots__ 、@property、多重继承、定制类、枚举类、元类
__slots__ @property 多重继承 定制类 枚举类 元类 [使用__slots__] 1.动态语言的一个特点就是允许给实例绑定任意的方法和变量,而静态语言(例如Java)必须事先将属性方 ...
- RabbitMQ学习之(二)_Centos6下安装RabbitMQ及管理配置
首先yum方式安装依赖包 yum install ncurses-devel unixODBC unixODBC-devel 安装Erlang语言环境 wget http://erlang.org/d ...
- Heartbeats
很少有人否定,这是一首天籁.凄美动听的声音,触动的,是真正的灵魂深处.所谓“仁者见仁智者见智”,但有些东西是共通的,比如,我们的内心会被同一样东西触动.在这首动听的歌曲中,体现出那男女之间平凡又伟大的 ...
- 20145313张雪纯 《Java程序设计》第5周学习总结
20145313张雪纯 <Java程序设计>第5周学习总结 教材学习内容总结 JAVA中所有错误都会被打包成对象,可以用尝试(try)捕捉(catch)代表错误的对象后做一些处理.使用tr ...
- 20145331 《Java程序设计》第8周学习总结
20145331 <Java程序设计>第8周学习总结 教材学习内容总结 14.NIO与NIO2 高级的输入输出处理,可以使用NIO(New IO),NIO2是文件系统的API Channe ...
- slf4j和log4j、logback
现在主流java项目一般使用slf4j+log4j的日志方案,最近抽点时间扫了一下slf4j.log4j.logback的官方文档,做个笔记.这篇比较不打算描述具体的配置方法,因为官方文档已经讲得很清 ...
- 记数排序 & 桶排序 & 基数排序
为什么要写这样滴一篇博客捏...因为一个新初一问了一道水题,结果就莫名其妙引起了战斗. 然后突然发现之前理解的桶排序并不是真正的桶排序,所以写一篇来区别下这三个十分相似的排序辣. 老年菜兔的觉醒!!! ...
- LeetCode——Unique Binary Search Trees
Question Given n, how many structurally unique BST's (binary search trees) that store values 1...n? ...
- spark SQL学习(案例-统计每日销售)
需求:统计每日销售额 package wujiadong_sparkSQL import org.apache.spark.sql.types._ import org.apache.spark.sq ...
- JAVA 单向链表
package com.session.link; /** * 单向链表 */public class LinkedList<T> { private Node head;//指向链表头节 ...