- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GNU gcc 使用手册
如果你还没装编译环境或自己不确定装没装,不妨先执行
sudo apt-get install build-essential
如果你需要编译 程序,那么还需要安装 或
Fortran gfortran( g77)
sudo apt-get install gfortran
编译简单的 C 程序
C 语言经典的入门例子是 Hello World,下面是一示例代码:
#include stdio.h
int main (void)
{
printf (Hello, world!\n);
return 0;
}
我们假定该代码存为文件‘hello.c’。要用 gcc 编译该文件,使用下面的命令:
$ gcc -g -Wall hello.c -o hello
该命令将文件‘hello.c’中的代码编译为机器码并存储在可执行文件 ‘hello’中。机器码的文件名是通过 -o
后一个参数。如果被省略,输出文件默认为 ‘a.out’。
注意到如果当前目录中与可执行文件重名的文件已经存在,它将被覆盖。
选项 -Wall 开启编译器几乎所有常用的警告──强烈建议你始终使用该选项 。编译器有很多其他的警告选项,但 -Wall 是最常用的。默认情况下
GCC 不会产生任何警告信息。当编写 C 或 C++ 程序时编译器警告非常有助于检测程序存在的问题。 注意如果有用到 math.h 库等非 gcc 默认调
用的标准库,请使用-lm 参数
本例中,编译器使用了 -Wall 选项而没产生任何警告,因为示例程序是完全合法的。
选项 -g 表示在生成的目标文件中带调试信息,调试信息可以在程序异常中止产生 core 后,帮助分析错误产生的源头,包括产生错误的文件名和
行号等非常多有用的信息。
要运行该程序,输入可执行文件的路径如下:
$ ./hello
Hello, world!
这将可执行文件载入内存,并使 CPU 开始执行其包含的指令。 路径 ./ 指代当前目录,因此 ./hello 载入并执行当前目录下的可执行文件 ‘hello’。
捕捉错误
如上所述,当用 C 或 C++ 编程时,编译器警告是非常重要的助手。为了说明这一点,下面的例子包含一个微妙的错误:为一个整数值错误地指定了
一浮点数控制符‘%f’。
#include stdio.h
int main (void)
{
printf (Two plus two is %f\n, 4);
return 0;
}
一眼看去该错误并不明显,但是它可被编译器捕捉到,只要启用了警告选项 -Wall。
编译上面的程序‘bad.c’,将得到如下的消息:
$ gcc -Wall -o bad bad.c
main.c: 在函数‘main’中:
main.c:5: 警告: 格式‘%f’需要类型‘double’,但实参 2 的类型为‘int’
这表明文件 ‘ 第 行中的格式字符串用法不正确。 的消息总是具有下面的格式 文件名 行号 消息。编译器对错误与警告区别对待,前者
bad.c’ 6 GCC : :
阻止编译,后者表明可能存在的问题但并不阻止程序编译。
本例中,对整数值来说,正确的格式控制符应该是 %d。
如果不启用 -Wall,程序表面看起来编译正常,但是会产生不正确的结果:
$ gcc bad.c -o bad
$ ./bad
Two plus two is 0.000000
显而易见,开发程序时不检查警告是非常危险的。如果有函数使用不当,将可能导致程序崩溃或产生错误的结果。开启编译器警告选项 -Wall 可捕捉
编程时的多数常见错误。
GCC 库依赖
在 Linux 下开发软件时,完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助一个或多个函数库的支持才能够完成相应的功能。从程序
员 的角度看,函数库实际上就是一些头文件 ( )和库文件 ( 或者 )的集合。虽然 下的大多数函数都默认将头文件放到 目
.h .so .a
您可能关注的文档
- 2010年会计从业《会计基础》考前押题密卷七(含答案).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(二).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(六).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(七).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(三).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(四).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(五).doc.doc
- 《财经法规与会计职业道德》考前押题密卷(一).doc.doc
- 《会计基础》考前押题密卷(八).doc.doc
- 《会计基础》考前押题密卷(二).doc.doc
- [IT资料文档]1_linux操作系统下c语言编程入门.pdf
- [IT资料文档]02第二讲_密码学基础(一).ppt
- [IT资料文档]05_项目计划书案例模板.ppt
- [IT资料文档]2011最新PPT幻灯片演示文稿模板免费下载-abstract-health.ppt
- [IT资料文档](梅花·植物模板)----findygirl原创中国风系列.ppt
- [IT资料文档](唐)冯承素临兰亭序(天下第一行书).pdf
- [IT资料文档]《MATLAB的S-Function编写指导》.pdf
- [IT资料文档]《Papervision3D_Essentials》中文翻译.pdf
- [IT资料文档]【清新出品】中国风系列7-隔窗犹望竹静静.ppt
- [IT资料文档]Accelerated+C+++.pdf
文档评论(0)