C编程及软件安装
一、gcc编译程序
- 命令格式
gcc -o hello hello.c
- 说明:
-o 选项要编译器为我们输出的可执行文件名为hello。如果没有该选项,生成默认的可执行文件a.out
-c 选项,表示只生成目标文件,不进行连接。
-g 选项指示编译程序在目标代码中加入供调试程序gdb使用的附加信息。 - 执行./hello就可以看到程序的输出结果。
二、gcc编译器
-
文件后缀
- .c c源文件
- .h 头文件
- .i 预处理后的c源文件
- .s 编译以后的汇编文件
- .o 目标文件
三、gcc编译程序
-
详细步骤
预处理 gcc –E ForGDB.c –o ForGDB.i
编译 gcc –S ForGDB.c –o ForGDB.s
cat ForGDB.s
链接 gcc ForGDB.o –o ForGDB
-
Gdb程序调试工具
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先 在编译时,我们必须要把调试信息加到可执行文件中。使用编译器( cc/gcc/g++)的 -g 参数可以
做到这一点。
gdb hello <---------- 启动GDB
-
Gdb命令
命令 使用 Help 查看 TAB 键补齐命令的全称 Shell 命令名执行shell命令 List 显示源程序 list 100 显示源文件中100行周围的10行 • List sum 显示sum函数的源程序 Search 搜索源程序 Print 查看运行时的数据 print i 显示当前变量i的值 print &i 显示变量i的存放地址 Print sum::y 显示函数sum中的变量y的当前值 Print x=10 修改变量的值
四、安装软件
-
常见的有两种:
(1)一种是软件的源代码,需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。
(2)另一种是软件的可执行程序,只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。 -
源代码安装
应用软件的源代码一般是file.tar.gz或者file.tgz格式,也就是说是以tar来打包,然后用gzip来压缩。以应用软件apache_1_3_6_tar.gz为例,先进入软件的当前目录,然后使用gzip解压:
#gzip -d apache_1_3_6_tar.gz (注:-d 代表解压)。
然后用tar解包:
#tar -xvf apache_1_3_6_tar
由于tar和gzip经常一起使用,所以tar还提供了一个参数,它可以自动调用gzip来解压,即:# tar -xzvf apache_1_3_6_tar.gz
执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为:
#./configure
检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。命令为:·#make·
成功编译后,键入如下的命令开始安装:#make install
安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:#make clean
或#make distclean
-
错误提示
遇到错误提示,通常是十分简单的问题:
(1)没有安装C或C++编译器
确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh gcc*
(用到了第二种安装方式)
(2)没有安装make工具
确诊方法:执行命令make,提示找不到这个命令。
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh make*
(3)没有安装autoconf工具
确诊方法:执行命令make,提示找不到这个命令。
解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh autoconf*
-
智能包安装
RPM是RedHat Package Manager的缩写,它只能使用在安装了RPM软件的系统中,
命令格式:#rpm [options] abc.rpm
例如,安装python-1.5.2-35.i386.rpm软件时,可以使用如下命令:#rpm –ivh python-2.7.14-35.i386.rpm
。
如果它提示该软件包已经被安装了,但或许已经不完整或其它原因你想强制安装该软件包,那么你就键入以下命令:rpm -ivh --replacepkgs file.rpm
。
如果你想知道RPM软件包中的相关信息,可以使用命令:#rpm ivh python-2.7.14-35.i386.rpm
。
升级软件:执行rpm -Uvh rpm
包名。
查该软件包会向系统里面写入哪些文件:执行rpm -qpl rpm包名
,如rpm -qpl python-2.7.14-35.i386.rpm
;
五、卸载软件
- 软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:
#rpm -q -a
,即可查询到当前系统中安装的所有的软件包。 - 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入如下命令即可卸载软件:
#rpm -e [package name]
,参数e的作用是使rpm进入卸载模式。对名为[package name]的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果
因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:#rpm -e [package name] -nodeps
- 忽略依赖关系的卸载可能会导致系统中其它的一些软件无法使用。