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. php腾讯云短信验证码

    腾讯云短信控制台:https://console.cloud.tencent.com/sms 腾讯云短信 PHP SDK:https://github.com/qcloudsms/qcloudsms_ ...

  2. day02 python函数基础

    '''''''''列表: 定义: 在[]内,可以存放多个任意类型的值, 并以逗号隔开. 一般用于存放学生的爱好,课堂的周期等等...'''# 定义一个学生列表,可存放多个学生# list(['钱垚', ...

  3. python 调用exe程序

    #!/usr/bin/python #-*- coding:utf-8 -*- import os, subprocess import tkMessageBox import msg_box def ...

  4. ERROR 1133 (42000): Can't find any matching row in the user table

    环境:操作系统:Redhat 7.5 x86-64 数据库版本MySQL 5.7.25 现象:ERROR 1133 (42000): Can't find any matching row in th ...

  5. 洛谷 1850 NOIP2016提高组 换教室

    [题解] 先用floyed处理出两点间的最短路. 设f[i][j][k]表示走到第i个教室,总共换了j次,当前换或者不换,期望的最小移动距离. 分情况讨论来转移即可. #include<cstd ...

  6. UVA 1596 Bug Hunt (大模拟 栈)

    题意: 输入并模拟执行一段程序,输出第一个bug所在的行. 每行程序有两种可能: 数组定义: 格式为arr[size]. 例如a[10]或者b[5],可用下标分别是0-9和0-4.定义之后所有元素均为 ...

  7. Cadence中画原理图的时候器件标号与黄色的参数不同的解决办法

    方法是Accessories->Transfer Occ. Prop to Instance->Push Occ. Prop into Instance 将黄色的参数同样应用到源参数. 版 ...

  8. jmap Unable to open socket file解决

    pid:Unable to open socket file: target process not responding or HotSport VM not loadedThe -F option ...

  9. dsu+树链剖分+树分治

    dsu,对于无修改子树信息查询,并且操作支持undo的问题 暴力dfs,对于每个节点,对所有轻儿子dfs下去,然后再消除轻儿子的影响 dfs重儿子,然后dfs暴力恢复轻儿子们的影响,再把当前节点影响算 ...

  10. POJ-2239 Selecting Courses,三维邻接矩阵实现,钻数据空子。

    Selecting Courses Time Limit: 1000MS   Memory Limit: 65536K       Description It is well known that ...