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下安装 解压 进入解压后的目录,编译 创建目录,安装并指定目录 修改配置 ...
随机推荐
- STM32-串行SPI nor
源:FLASH 存储学习-串行SPI nor 1.1 SST25VF080B简介1.1.1 主要特性 关键点:容量.速度(时钟速度.读写速度).功耗. l 容量:8MBit: l 最高SPI时钟频率: ...
- Delphi7编译时,发生Access violation at address 00A7B628 in module 'dcc70.dll'. Read of address 00000000.(Delphi6升级到Delphi7)
最近接了一个项目,要求使用Delphi7来开发程序,可是由于我们之前均使用delphi6来开发程序的,而且Delphi6使用很长时间了,积累并改造了第三方控件很成熟了: 故把Delphi6的控件移植( ...
- 开发人员不可不看的 OBD通讯协议知识
OBD-II Network Standards» J1850 VPW– Adopted by GM; also known as Class 2.– Adopted by Chrysler (kno ...
- Java 线程池submit和execute
submit方法: public abstract class AbstractExecutorService implements ExecutorService { protected <T ...
- mybatis映射文件select_resultMap_关联查询_collection定义关联集合
知识点:查询一个实体类,并查出这个类下面的集合 Employee.java实体类 package com.hand.mybatis.bean;public class Employee { pr ...
- 解决"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站"的问题
在ASP.NET MVC项目中,使用AJAX向控制器发送GET请求获取JSON数据时,出现这个错误:"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站.若要允许 G ...
- vue element new vue const
new Vue{ el:"app", } ========= const app = new Vue({ router, data:{....} }).$mount('#app') ...
- Log4j 2.0 使用说明(1) 之HelloWorld
以下是Log4j2.0的类图,以便大家对2.0有一个整体的理解. 就如我们学习任何一个技术一样,这里我们首先写一个Hello World: 1,新建工程TestLog4j 2,下载Log4j 2.0有 ...
- iOS学习-字符串的删除替换
字符串的常用处理,删除,替换.记录一下,方便查找. -------------------------------------------------------------------------- ...
- php给图片添加圆角并且保持透明,可做圆形头像
原文链接:https://www.zhaokeli.com/article/8031.html 给图片添加圆角, 用到的主要的(判断一个点是否在圆内)的公式在上面所说的生成圆形图片文章中. 然后扫 ...