centos程序编码

程序编译数显需要电脑里有编译程序 否则报错
从原始码的说明我们晓得要制作一个 binary program 需要很多咚咚的呢!这包括底下这些基础的软件:
1. gcc 或 cc 等 C 语言编译程序 (compiler):没有编译程序怎么进行编译的动作?所以 C compiler 是一定要有的。不过 Linux 上面有众多的编译程序,其中当然以 GNU 的 gcc 是首选的自由软件编译程序啰!事实上很多在 Linux 平台上面发展的软件的原始码,原本就是以 gcc 为底来设计的呢。
2. make 及 autoconfig 等软件:
一般来说,以 Tarball 方式释出的软件当中,为了简化编译的流程,通常都是配合前几个小节提到的 make 这个指令来依据目标文件的相依性而进行编译。但是我们也知道说 make 需要makefile 这个文件的规则,那由于不同的系统里面可能具有的基础软件环境并不相同, 所以就需要侦测用户的作业环境,好自行建立一个makefile 文件。这个自行侦测的小程序也必须要藉由autoconfig 这个相关的软件来辅助才行。
3. 需要 Kernel 提供的 Library 以及相关的 Include 文件:
从前面的原始码编译过程,我们晓得函式库 (library) 的重要性,同时也晓得有 include 文件的存在。很多的软件在发展的时候都是直接取用系统核心提供的函式库与 include 文件的,这样才可以与这个操作系统兼容啊!尤其是在『驱动程序方面的模块 』,例如网络卡、声卡、USB 等驱动程序在安装的时候,常常是需要核心提供的相关信息的。在 Red Hat 的系统当中 (包含Fedora/CentOS 等系列) ,这个核心相关的功能通常都是被包含在 kernel-source 或 kernel-header 这些软件名称当中,所以记得要安装这些软件喔!虽然 Tarball 的安装上面相当的简单,如同我们前面几个小节的例子,只要顺着开发商提供的README 与 INSTALL 文件所载明的步骤来进行,安装是很容易的。
但是我们却还是常常会在 BBS或者是新闻组当中发现这些留言:『我在执行某个程序的侦测文件时,他都会告诉我没有 gcc 这个软件,这是怎么回事?』还有:『我没有办法使用 make 耶!这是什么问题?』呵呵! 这就是没有安装上面提到的那些基础软件啦!
目前的 Linux distribution 大多已经偏向于桌面计算机的使用 (非服务器端),他们希望使用者能够按照厂商自己的希望来安装相关的软件即可, 所以通常『预设』是没有安装 gcc 或者是 make 等软件的。所以啦,如果你希望未来可以自行安装一些以Tarball 方式释出的软件时,记得请自行挑选想要安装的软件名称喔!例如在 CentOS 或者是 Red Hat当中记得选择 Development Tools 以及 Kernel Source Development 等相关字眼的软件群集呢
那万一我已经安装好一部 Linux 主机,但是使用的是默认值所安装的软件,所以没有 make, gcc 等,该如何是好?问题其实不大啦,目前使用最广泛的 CentOS/Fedora 或者是 Red Hat 大多是以 RPM (下一章会介绍) 来安装软件的,所以,你只要拿出当初安装 Linux 时的原版光盘,然后以下一章介绍的 RPM 来一个一个的加入到你的 Linux 主机里面就好啦!很简单的啦! 尤其现在又有 yum 这玩意儿,更方便吶!
在 CentOS 当中,如果你已经有网络可以连上 Internet 的话,那么就可以使用下一章会谈到的 yum啰! 透过 yum 的软件群组安装功能,你可以这样做:
 如果是要安装 gcc 等软件开发工具,请使用『 yum groupinstall “Development Tools” 』
 若待安装的软件需要图形接口支持,一般还需要『 yum groupinstall “X Software Development” 』
 若安装的软件较旧,可能需要『 yum groupinstall “Legacy Software Development” 』

#1.编译程序
事实上,使用类似 gcc 的编译程序来进行编译的过程并不简单,因为一套软件并不会仅有一支程序,而是有一堆程序代码文件。所以除了每个主程序与子程序均需要写上一笔编译过程的指令外,还需要写上最终的链接程序。 程序代码小的时候还好,如果是类似 WWW 服务器软件 (例如 Apache) ,或者是类似核心的原码,动则数百 MBytes 的数据量,编译指令会写到疯掉~这个时候,我们就可以使用 make 这个指令的相关功能来进行编译过程的指令简化了!
当执行 make 时,make 会在当时的目录下搜寻 Makefile (or makefile) 这个文本文件,而 Makefile 里
面则记录了原始码如何编译的详细信息! make 会自动的判别原始码是否经过变动了,而自动更新执行档,是软件工程师相当好用的一个辅助工具呢!
咦!**make 是一支程序,会去找 Makefile ,**那 Makefile 怎么写? 通常软件开发商都会写一支侦测程序来侦测用户的作业环境, 以及该作业环境是否有软件开发商所需要的其他功能,该侦测程序侦测完毕后,就会主动的建立这个 Makefile 的规则文件啦!通常这支侦测程序的文件名为 configure 或者是 config
**那为什么要侦测作业环境呢?在第一章当中, 曾经提过其实每个 Linux distribution 都使用同样的核心吗? 不同版本的核心所使用的系统呼叫可能不相同,而且每个软件所需要的相依的函式库也不相同, 同时,软件开发商不会仅针对 Linux 开发,而是会针对整个 Unix-Like做开发啊! 所以他也必须要侦测该操作系统平台有没有提供合适的编译程序才行!所以当然要侦测环境啊! 一般来说,侦测程序会侦测的数据大约有底下这些:
 是否有适合的编译程序可以编译本软件的程序代码;
 是否已经存在本软件所需要的函式库,或其他需要的相依软件;
 操作系统平台是否适合本软件,包括 Linux 的核心版本;
 核心的表头定义档 (header include) 是否存在 (驱动程序必须要的侦测)。
至于 make 与 configure 运作流程的相关性,我们可以使用底下的图示来示意一下啊! 下图中,妳
要进行的任务
其实只有两个,一个是执行 configure 来建立 Makefile , 这个步骤一定要成功!成功
之后再以 make 来呼叫所需要的数据来编译即可!**非常简单
CentOS下C++编程(1)–一个完整的小程序
前提保证g++已经安装。(yum install gcc-c++)

1.首先使用Vim编写如下一段程序代码:文件名为:first.cpp
#include
int main()
{
std::cout<<“Hello World”<<std::endl;
std::cout<<“I am Wolangjushi\n”;
std::cout<<“Please enter an integer:\n”;
int a;
std::cin>>a;
if(a>1)
std::cout<<“Bigger than 1”<<std::endl;
else
std::cout<<“Smaller than 1”<<std::endl;
return 0;
}
2.在Shell中进行编译,命令输入为:g++ -o hello first.cpp //编译并进行链接
3.程序的运行: ./hello
4.程序的输出:
walker@ubuntu:~/test$ ./hello
Hello World
I am Wolangjushi
Please enter an integer:
23

————————————————
版权声明:本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wolangjushi/article/details/23846239
#2.软件安装
所谓的 Tarball 文件,其实就是将软件的所有原始码文件先以 tar 打包,然后再以压缩技术来压缩,
通常最常见的就是以 gzip 来压缩了。因为利用了 tar 与 gzip 的功能,所以 tarball 文件一般的扩展
名就会写成 *.tar.gz 或者是简写为 *.tgz 啰!不过,近来由于 bzip2 与 xz 的压缩率较佳,所以 Tarball
渐渐的以 bzip2 及 xz 的压缩技术来取代 gzip 啰!因此档名也会变成 *.tar.bz2, *.tar.xz 之类的哩。
所以说, Tarball 是一个软件包, 妳将他解压缩之后,里面的文件通常就会有:
 源代码文件;
 侦测程序文件 (可能是 configure 或 config 等檔名);
 本软件的简易说明与安装说明 (INSTALL 或 README)。
**那么一个软件的 Tarball 是如何安装的呢?**基本流程是这样的啦:

  1. 将 Tarball 由厂商的网页下载下来;
  2. 将 Tarball 解开,产生很多的原始码文件;
  3. 开始以 gcc 进行原始码的编译 (会产生目标文件 object files);
  4. 然后以 gcc 进行函式库、主、子程序的链接,以形成主要的 binary file;
  5. 将上述的 binary file 以及相关的配置文件安装至自己的主机上面。
    上面第 3, 4 步骤当中,我们可以透过 make 这个指令的功能来简化他, 所以整个步骤其实是很简
    单的啦!只不过你就得需要至少有 gcc 以及 make 这两个软件在你的 Linux 系统里面才行喔!
    基本上更新的
    软件更新方法可以分为两大类,分别是:
     直接以原始码透过编译来安装与升级;
     直接以编译好的 binary program 来安装与升级。
    上面第一点很简单,就是直接以 Tarball 在自己的机器上面进行侦测、编译、 安装与设定等等动作来升级就是了。不过,这样的动作虽然让使用者在安装过程当中具有很高的弹性, 但毕竟是比较麻烦一点,如果 Linux distribution 厂商能够针对自己的作业平台先进行编译等过程,再将编译好的binary program 释出的话,那由于我的系统与该 Linux distribution 的环境是相同的,所以他所释出的binary program 就可以在我的机器上面直接安装啦!省略了侦测与编译等等繁杂的过程呢!
    这个预先编译好程序的机制存在于很多 distribution 喔,包括有 Red Hat 系统 (含 Fedora/CentOS 系
    列) 发展的 RPM 软件管理机制与 yum 在线更新模式;Debian 使用的 dpkg 软件管理机制与 APT在线更新模式等等。由于 CentOS 系统是依循标准的 Linux distribution,所以可以使用 Tarball 直接进行编译的安装与升
    级, 当然也可以使用 RPM 相关的机制来进行安装与升级啰!
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值