linux软件证券,linux

1.说明

在*nix环境下,经常通过源码安装软件。./configure make make install基本上都是定式了。本文对于configure的基本原理进行阐述,并借助http://concurrencykit.org/开源包的configure文件,对于实际的运行过程进行分析。

2.configure基本背景

configure文件主要是对于软件在不同平台编译时,对于硬件平台环境、编译器、头文件、安装目录等进行配置,生成makefile文件,然后再进行编译。(在configure还没有执行的时候,直接make,出现错误*** No targets specified and no makefile found. Stop.应该都遇到过吧 ^_^)。

configure文件通常是用bash脚本编写。也就是通过执行一系列的脚本生成最后的makefile文件。所以读者可以先看看bash相关的基础内容。

3.configure模块分析

在configure执行的过程中,通常涉及到(1)基本设置;(2)参数解析;(3)操作系统相关;(4)平台架构信息;(5)编译环境检查;(6)头文件检查;(7)makefile文件生成等几个方面。我们对于上述几个执行部分逐一进行分析。

3.1基本设置

通常configure文件中含有了软件版本信息、基本路径设置等配置信息。

#变量替换,可以参照:http://en.kioskea.net/faq/1310-replacing-variables-in-bash-shell

#VERSION=${VERSION:-'0.2.8'} var=${var:-‘default’}

#如果 VERSION 没有被设置,则使用默认的’0.2.8’

VERSION=${VERSION:-'0.2.8'}

VERSION_MAJOR='0'

BUILD="$PWD/build/ck.build"

PREFIX=${PREFIX:-"/usr/local"}

3.2参数解析

在执行configure的时候,通常可以输入路径等参数,对于安装路径、lib包位置等进行设置(比如:./configure --prefix=/usr/local)。

#$*代表输入的参数列表,从参数 1 开始,即:忽略了本身的 configure

#value=获得输入的参数,并且取得参数的值

# sed -e 's/^[^=]*=\(.*\)/\1/'对于参数进行解析,获得”=”之后的内容

#其中,^[^=]*= 从每行开头查找不是=开始的多个字符且以=结束,

#\(.*\)/\1 将=之后的内容替换整个行

#可以参照:http://www.grymoire.com/Unix/Sed.html#uh-4

for option in $*; do

value=`echo "$option" | sed -e 's/^[^=]*=\(.*\)\1/'`

#比如:输入./configure -–help

case "$option" in

#则通过 case 语句,执行 help 中的语句

--help)

echo "Usage: ./configure [OPTIONS]"

;;

#*为通配符,即option为"--profile=*"

--profile=*)

PROFILE=$value

;;

--prefix=*)

PREFIX=$value

;;

--includedir=*)

HEADERS=$value

esac done

对于输入的参数逐一进行解析,根据不同的参数设定不同的参数值。 继续阅读 →

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0x08算法设计与分析复习(二):算法设计策略-回溯法2

参考书籍:算法设计与分析——C语言描述(第二版) 算法设计策略-回溯法 子集和数 问题描述 已知n个不同的正数wi(0≤i≤n−1)的集合,求该集合的所有满足条件的子集,使得每个子集中的正数之和等于另一个给定的正数M。 回溯…

Android源码解析--SwipeMenuListView仿QQ聊天左滑

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50612714 绪论: 好久没写博客了,最近比较懒,不想写博客,但是在看书,看一些Android进阶的书&#…

UVA 125 Numbering Paths

题意 给出方向&#xff08;有向&#xff09;然后判断从一个点到另一个点的方案数。如果有无数条那么对应位置置为-1 直接先dp处理出来。dp[i][j] sum(dp[i][k]*dp[k][j]) 同时如果两点之间有无限条路径。那么这两点之间必然有一环存在。有f[k][k]!0 #include <map> #…

linux 循环执行ip停止服务,java调用远程服务器的shell脚本以及停止的方法实现

最近接了个需求&#xff0c;要求远程调shell脚本&#xff0c;你没听错&#xff01;&#xff01;&#xff01;需求就一句话&#xff0c;咱是谁&#xff0c;咱是优秀的开发选手。考虑再三&#xff0c;有两种实现方式&#xff1a;方案一&#xff1a;脚本所在服务器安装一个客户端&…

mysql-防止XSS攻击

1,防止Xss攻击 数据库查询数据操作,为了防止注入,要执行参数化查询,也就是直接利用execute直接进行sql语句的执行, 因为exexute本身就有接收语句变量的参数位, execute()函数本身就有接受SQL语句变量的参数位&#xff0c;只要正确的使用&#xff08;直白一点就是&#xff1a;使…

java main方法背后的故事?(转)

jvm java 看似一种语言&#xff0c;实则一个巨大的体系的王国&#xff0c;开发这么多年了&#xff0c;还是没有搞懂,我以为我懂了&#xff0c;可是过了一段时间又忘了&#xff0c;所以说还是没懂 1、main方法说起 编译完我们的java文件后&#xff0c;需要有个一含有main方法的类…

亲历腾讯WEB前端开发三轮面试经历及面试题

【一面】~110分钟 2014/09/24 11:20 星期三 进门静坐30分钟做题。 填空题大题问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理 延时 display position XMLHttpRequest 正则Jquery绑定事件 cookie >>大题BOM浏览器…

Redis的数据结构之字符串

原文&#xff1a;http://blog.java1234.com/blog/articles/316.html 五种数据类型&#xff1a; 字符串&#xff08;String&#xff09; 字符串列表&#xff08;list&#xff09; 有序字符串集合&#xff08;sorted set&#xff09; 哈希&#xff08;hash&#xff09; 字符串集合…

linux搜索日志组合条件,find查找

find查找是生产中最常见的日志查找工具下面看看它的用法基本用法&#xff1a;find 查找路径 查找标准 查找到以后的处理动作查找路径&#xff1a;需要被查找的文件所在的路径&#xff0c;一定是个目录&#xff0c;默认情况下为当前的目录查找的标准&#xff1a;查找的…

常用的JPA标记 (转)

Table Table用来定义entity主表的name&#xff0c;catalog&#xff0c;schema等属性。 元数据属性说明&#xff1a; name: 表名catalog: 对应关系数据库中的catalogschema&#xff1a;对应关系数据库中的schemaUniqueConstraints:定义一个UniqueConstraint数组&#xff0c;指定…

JavaBean技术的一些讲解

JavaBean: 由于原先的jsp的html代码和css代码以及java代码都是写在一起的&#xff0c;所以看起来就比较冗余&#xff0c;同时 也体现不了javaBean中面向对象的思想的{当然可以同过jstl标签库以及mvc框架来脱离java代码&#xff0c;但是这也是必不可少的} 在这里对于Javabean的一…

linux网卡名称乱编,小斗CentOS7.x网卡名称错乱、及网卡启动失败。

本帖最后由 Zack 于 2018-5-31 13:39 编辑最近在搞CentOS7装机的事情&#xff0c;在此记录期间遇到关于网卡方面的坑&#xff0c;整理分享下&#xff0c;以免大家继续再踩。一、在CentOS7默认装完系统之后网卡名称一改之前的名称习惯&#xff0c;网卡名称为enoxxxxx(之前命名规…

block传值 链接

iOS传值之block传值(一)转载于:https://www.cnblogs.com/dqxu/p/4016117.html

Maven——继承和聚合

实际项目中&#xff0c;可能正要构建一个大型的系统&#xff0c;但又不想一遍又一遍的重复同样的依赖元素&#xff0c;这种情况是经常出现的。不过还好&#xff0c;maven提供了继承机制&#xff0c;项目可以通过parent元素使用继承&#xff0c;可以避免这种重复。当一个项目声明…

隐藏linux操作系统版本信息,linux centos 如何查看操作系统版本信息?

本文介绍常用的四种查看linux下查看系统版本信息的方法&#xff1a;一、uname -a[appVM_11_211_centos ~]$ uname -aLinux VM_11_211_centos 2.6.32-504.30.3.el6.x86_64 #1 SMP Wed Jul 15 10:13:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux二、cat /proc/version[appVM_11_2…

iframe css练习

转载于:https://www.cnblogs.com/wenhuan/p/4019154.html

关于缓存的几篇好文章

追求极致&#xff1a;从技术细节看美团架构 Memcache架构新思考 Memcache应用场景介绍&#xff0c;说明[zz] 大型web系统数据缓存设计-l转载 大型网站后台架构的Web Server与缓存 Intelligence Computing 微博到底有多重视分布式缓存&#xff08;上&#xff09; Beanstalkd 一个…

linux 复制分区文件,dd复制分区后目标分区的大小变成原分区了

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我使用了dd if/dev/sda1 of/dev/sdb1这个命令,想复制分区sda1上的所有数据但是我原本sdb1是150G,dd之后,挂载后变成55G了(df -h输出结果)(也就是sda1的大小 )但是我用fdisk -l 得到的信息还是150G请问这种情况如何解决??acePerso…

Elasticsearch 5.2.x 使用 Head 插件连接不上集群

0、前言 时光荏苒&#xff0c;ES转眼间就从2.X跳到了5.X。。。忆往昔峥嵘岁月&#xff0c;奈何ES社区太活跃&#xff0c;版本跳的比房价还快啊。。。话说回来&#xff0c;需要部署一套Elasticsearch 5.2.1 即本月最新推出的ES新力作&#xff0c;发现很多用法已经不一样了。。。…

Javascript---Immediately-Invoked Function Expression (IIFE)立即执行的函数表达式

1.一下是几种形式的函数调用&#xff1a; 各种调用的效率&#xff1a;在这编文章中有谈到&#xff1a; http://suqing.iteye.com/blog/1981591 // Either of the following two patterns can be used to immediately invoke // a function expression, utilizing the functions…