Unix/Linux 软件安装
首先我们明确。在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件。

比如main.c,haha.c,sin_value.c这三个源码文件。
1.程序源代码
1.1用gcc等编译工具手动编译
#什么是gcc工具?GNU的gcc工具是非常通用的C语言编译器。
gcc -c main.c
gcc -c haha.c
gcc -c sin_value.c
gcc -c cos_value.c
生成main.o,haha.o,sin_value.o,cos_value.o 4个经过编译文件。
将几个.o文件进行连接。并增加libm数学函数,以生成main可运行文件。
gcc -o main main.o haha.o sin_value.o cos_value.o \
-lm -L/usr/lib -L/lib
#然后我们就能够跑main这个可运行文件了。
[padep@cnsz081003 fwy]$ ./main
Please input your name: fengweiyuan
Please enter the degree angle (ex> 90): 110
Hi, Dear fengweiyuan, nice to meet you.
The Sin is: 0.94
The Cos is: -0.34
1.2 用configure与make等工具编译源代码
./configure
检測用户环境,检查该OS是否适合等。然后会生成makefile文本文件。

1.是否有适合的编译程序,能够编译本软件的程序源代码。

2.是否已经存在本软件所需的函数库或其它依赖软件。

3.OS平台,包含内核版本号,是否适合本软件。
4.内核的头定义文件是否存在。

makefile其中记录了源代码怎样编译等信息。这个步骤的相关信息你能够參考README与INSTALL等文件。
makeclean
不一定须要。但运行一下比較安全。假设已经有上次编译过的.o文件存在,当然是清除一下比較好。这样我们就可确定新编译出来的运行文件我们能够确定是使用自己的机器所编译完毕的。

make
会在当前文件夹下搜索makefile这个文本文件,利用makefile来编译源代码,编译成可运行文件,放当前文件夹下。(这个过程就如上面1.1的生成.o文件,将.o文件连接一起并加函数库的工作)。
make会自己主动推断源代码是否经过变动了而自己主动更新运行文件。

make install
假设makefile里面有写上关于install的选项。就会将上一步编译完毕的文件安装到默认的文件夹下。以完毕安装。

这些步骤是一个一个来的,前面的没有成功,后面的也无法运行。
总结
因为不同OS的函数库路径、或者函数库文件名称定义,或者是默认安装的编译程序。以及内核版本号不同。

理论上,不能将CentOS 5.x上编译出来的二进制文件(二进制运行文件包括该OS上函

posted @ 2017-05-25 20:39 lytwajue 阅读(...) 评论(...) 编辑 收藏

Unix/Linux 软件安装的更多相关文章

  1. Linux 软件安装位置选择指南

    Linux 软件安装   Linux 下安装软件不像 Windows 下安装这么简单,Windows 下会自动选择合适安装路径,而 Linux 下安装路径大部分完全由自己决定,我可以将软件安装到任意可 ...

  2. Linux软件安装,RPM与YUM

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...

  3. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  4. Linux软件安装中RPM与YUM 区别和联系

    .tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...

  5. 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM   软件管理员简介 RPM与DPKG两大主流 rpm: redhat       centos     suse    命令:yum ...

  6. Linux软件安装——服务管理的命令

    Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...

  7. Linux软件安装——服务管理

    Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...

  8. Linux软件安装——安装软件的命令

    Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: rpm -i ...

  9. Linux软件安装——软件包

    Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改 ...

随机推荐

  1. 使用webpack+vue.js构建前端工程化

    参考文章:https://blog.csdn.net/qq_40208605/article/details/80661572 使用webpack+vue.js构建前端工程化本篇主要介绍三块知识点: ...

  2. Mysql使用导出导入数据库

    要在两台不同的电脑上进行开发,数据库需要统一,由于自己第一次完整的设计表结构,因此多次更改表结构,造成了很多不必要的麻烦, 需要将数据库导出成sql脚本: 命令行下具体用法如下: mysqldump ...

  3. 第3节 hive高级用法:15、hive的数据存储格式介绍

    hive当中的数据存储格式: 行式存储:textFile sequenceFile 都是行式存储 列式存储:orc parquet 可以使我们的数据压缩的更小,压缩的更快 数据查询的时候尽量不要用se ...

  4. LNMP环境搭建网站

    系统:Centos7.4 一台服务器安装nginx.php.mysql 原理不是很懂,但实测如下两种环境下都能成功,这里做下记录: 1.一个干净的系统,从0开始完成所有步骤,完成LNMP搭建 2.已经 ...

  5. String 工具类

    package com.mytripod.util; import sun.rmi.runtime.Log; import java.io.UnsupportedEncodingException; ...

  6. log4j动态文件名

    在项目中,对log的输出有多种多样的要求,下面具体分析一下动态log文件名输出的. 一,按照用户ID来生成log,这种情况,可以根据每个用户ID来动态生成logger. 代码如下: import or ...

  7. 树形查询SQL优化一例

    上周五一哥们发了条SQL,让我看看,代码如下: SELECT COUNT(1) FROM (select m.sheet_id from cpm_main_sheet_history m, cpm_s ...

  8. UVa Sculpture(离散化 floodfill)

    题意: 给定n个立方体的一个顶点坐标和3边长度,  问这些立方体组成的雕塑的表面积和体积,   坐标都是整数,n最大为50,  最大为500, 边长最大也是500. 分析: 继UVa221后又一道离散 ...

  9. Android BGABadgeView:显示提示数字(2)

     Android BGABadgeView:显示提示数字(2) 在附录文章3的基础上,对代码进行稍微改造,显示在红色小圆球内部显示数字,同时给红色小圆球通过可编程调控红色小圆球的整体外观,布局文件 ...

  10. [HDU1576] A/B(扩展欧几里得)

    传送门 n = A % 9973 -> n = A - A / 9973 * 9973 设 x = A / B(题目所述,B|A) -> A = B * x 所以 B * x - A / ...