Chinaunix首页 | 论坛 | 博客
  • 博客访问: 470524
  • 博文数量: 164
  • 博客积分: 4024
  • 博客等级: 上校
  • 技术积分: 1580
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-10 16:27
文章分类

全部博文(164)

文章存档

2011年(1)

2010年(108)

2009年(55)

我的朋友

分类: C/C++

2009-10-11 22:08:28

一、开发环境的构成

 1、编辑器:选择Vi
    编译器:选择GNU c/c++编译器gcc
    调试器:应用广泛的gdb
    函数库:glibc
    系统头文件:glibc_header

2。安装时要注意:
   选上程序开发中的开发工具,就可以自动安装gcc/gdb
   若想开发图形界面,还需选上GNOME/KDE软件开发
3。IDE
kylix:linux下的dephi
kdevelop
RHIDE:类似turbo c++


二。编译器:gcc

1。gcc(GNU Ccompiler)是GNU推出的功能强大性能优越的多平台编译器,他能将C,C++语言的源程序编译连接成可执行文件,一下是他支持编译的一些源文件的后缀及其解释
.c:C语言源代码文件
.h:程序所包含的头文件
.i:已经预处理过的C源代码文件
.o:编译后的目标文件
.s:汇编语言源代码文件

2。gcc -o hello hello.c
用gcc编译我们的源程序
-o要求编译器给我们输出的可执行文件名为hello
hello.c是我们的源程序文件
-c表示我们只要求编译器输出目标代码,而不必要输出可执行文件
-g表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息
执行./hello就可以看到程序的输出结果


三。函数库:glibc

1.要架构一个完整的C开发环境,glibc必不可少,他是linux下C的主要函数库。
  安装方式:安装测试用的函数库    安装成主要的函数库
2。glibc2包含几个附加包: linuxThreads,locale  crypt
3.glibc是提供系统调用和基本函数的C库,比如open,malloc,printf等,所有动态连接的程序都用他

四。系统头文件glibc_header
1。缺少了系统头文件的话很多用到系统功能的C程序将无法编译
2。rpm快速安装


五。C开发环境对应的rpm包


补充:查看glibc的版本:ls /lib/libc-*
     查看gcc的版本:gcc -version

六。linux下C程序开发过程

1。使用Vi等编辑工具编写源程序
2。保存为*。C
3。使用gcc编译成二进制可执行文件
4。./a.out执行
5。有问题可以使用gdb进行调试

七。第一个程序
int main(int argc,char **argv)
{
printf("hello!\n");
return 0;
}
argc参数数目, argv存放参数内容

C 程序结构
1。C语言程序由函数构成,至少且只有一个main函数,他是程序的入口点,执行程序时第一个执行的函数
2。函数由函数原型和函数体(包括变量定义和语句部分)组成:
  main()
{
变量说明;
语句;
}
语句必须以分号结尾
由/**/注释,//单行注释
printf("普通字符或用%开头或用、开头",输出内容);
{}函数体的开始与结束标志
#include包含有关文件的信息
scanf("输入数据格式",&输入符号);

八。C程序的组成

1。对于一个C程序,安装完成后,可以分为三个组成:
可执行文件,包含文件,库文件
2。可执行文件就是最终运行的命令,包含文件是该C程序include的一些定义文件,库文件则是C程序定义的库
3。比如用rpm安装的mysql数据库
可执行文件放在下/usr/bin
包含文件放在/usr/include/mysql
库文件在:/usr/lib/mysql
4。只有系统可以找到程序对应的包含文件和库文件,程序可执行文件才能正常运行


学了理论还要练习哦 呵呵
启动终端:exit 退出终端
gcc --version
ls /lib/lib-*
mkdir wrr
ls
cd wrr
vi hello.c
进入vi 按i键进入插入模式
#include
int main()
{
printf("hello!\n");
return 0;
}
按ESC键:wq返回终端
ls
gcc hello.c
然后ls出现a.out
然后./a.out执行


vi first.c
#include
int main()
{
printf("fist!\n");
return 0;
}
gcc first.c
运行./a.out
此时会覆盖hello.c产生的a.out,因此一般指清可执行文件名,用
gcc -o hello hello.c
gcc -o first first.c














































阅读(841) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~