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下安装 解压 进入解压后的目录,编译 创建目录,安装并指定目录 修改配置 ...
随机推荐
- 一幅图秒懂LoadAverage(转载)
转自:http://www.habadog.com/2015/02/27/what-is-load-average/ 一幅图秒懂LoadAverage(负载) 一.什么是Load Average? ...
- jqgrid动态填充select
前两天使用jquery动态填充jqgrid的select,默认随便用一个dict填充(初始化页面是会替换掉),用着可以,后来发现当行数增多,回到以前行继续编辑发现select又变成了那个用来避免报错随 ...
- CSS Pseudo-classes(伪类)
CSS Pseudo-classes(伪类) CSS伪类是用来添加一些选择器的特殊效果. 一.语法 伪类的语法: selector:pseudo-class {property:value;} CSS ...
- 安卓Android第三方登录-QQ登录
要实现QQ第三方登录,其实只需要一个封装类:QQLoginManager 几乎 三行代码 就实现QQ登录功能 这里先给出Github开源项目地址,项目下有详细的使用说明 下面就开始详细说一说怎么实 ...
- 为什么@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
Spring Boot会自动根据jar包的依赖来自动配置项目,例如当你项目下面有HSQLDB的依赖,Spring Boot会自动创建默认的内存数据库的数据源DataSource, 但我们使用Mybat ...
- swift学习笔记 - 判断当前运行的系统和平台
最近代码需要判断代码运行的系统与平台,下面总结了一下swift下一些可以用来判断的属性: // 代码运行在32位的 Windows public var TARGET_OS_MAC: Int32 { ...
- 异步:asyncio和aiohttp的一些应用(2)
转自:原文链接:http://www.cnblogs.com/ssyfj/p/9222342.html 1.aiohttp的简单使用(配合asyncio模块) import asyncio,aioht ...
- 防止xss(脚本攻击)的方法之过滤器
一 什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...
- CBT怎样进行注册
CBT币未来升值千倍?揭秘为何比特云币注册认证送矿机? 比特云币先机先机,1月6号准备启动,虚拟货币新宠云比特(Cloud Bit 简称CBT)将于近日强势登陆交易市场.这款由全球最大的比特矿工联盟发 ...
- Git出现fatal: Unable to find remote helper for 'https'
使用Git远程获取代码 git clone https://github.com/twlkyao/findfile.git 出现“fatal: Unable to find remote helper ...