本文介绍了在 Linux下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程. GNU C 编译器GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器. 如果你熟悉其他操作系统或硬件平台上的一种 C 编译器, 你将能很快地掌握 GCC. 本节将介绍如何使用 GCC 和一些 GCC 编译器最常用的选项. 使用 GCC通常后跟一些选项和文件名来使用 GCC 编译器. gcc 命令的基本用法如下: gcc [options] [filenames] 命令行选项指定的操作将在命令行上每个给出的文件上执行. 下一小节将叙述一些你会最常用到的选项. GCC 选项 GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的 GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数 Linux命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的: gcc -p -g test.c gcc -pg test.c 第一条命令告诉 GCC 编译 test.c 时为 prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里. 第二条命令只告诉 GCC 为 gprof 命令建立剖析信息.当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为 a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫 a.out 的文件: gcc test.c 你能用 -o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫 count.c 的 C 程序编译为名叫 count 的可执行文件, 你将输入下面的命令: gcc -o count count.c--------------------------------------------------------------------------------注意: 当你使用 -o 选项时, -o 后面必须跟一个文件名.-------------------------------------------------------------------------------- GCC 同样有指定编译器处理多少的编译选项. -c 选项告诉 GCC 仅把源代码编译为目标代码而跳过汇编和连接的步骤. 这个选项使用的非常频繁因为它使得编译多个 C 程序时速度更快并且更易于管理. 缺省时 GCC 建立的目标代码文件有一个 .o 的扩展名.-S 编译选项告诉 GCC 在为 C 代码产生了汇编语言文件后停止编译. GCC 产生的汇编语言文件的缺省扩展名是 .s . -E 选项指示编译器仅对输入文件进行预处理. 当这个选项被使用时, 预处理器的输出被送到标准输出而不是储存在文件里.优化选项当你用 GCC 编译 C 代码时, 它会试着用最少的时间完成编译并且使编译后的代码易于调试. 易于调试意味着编译后的代码与源代码有同样的执行次序, 编译后的代码没有经过优化. 有很多选项可用于告诉 GCC 在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件. 这些选项中最典型的是-O 和 -O2 选项. -O 选项告诉 GCC 对源代码进行基本优化. 这些优化在大多数情况下都会使程序执行的更快. -O2 选项告诉 GCC 产生尽可能小和尽可能快的代码. -O2 选项将使编译的速度比使用 -O 时慢. 但通常产生的代码执行速度会更快. 除了 -O 和 -O2 优化选项外, 还有一些低级选项用于产生更快的代码. 这些选项非常的特殊, 而且最好只有当你完全理解这些选项将会对编译后的代码产生什么样的效果时再去使用. 这些选项的详细描述, 请参考 GCC 的指南页, 在命令行上键入 man gcc . 调试和剖析选项GCC 支持数种调试和剖析选项. 在这些选项里你会最常用到的是 -g 和 -pg 选项.-g 选项告诉 GCC 产生能被 GNU 调试器使用的调试信息以便调试你的程序. GCC 提供了一个很多其他 C 编译器里没有的特性, 在 GCC 里你能使 -g 和 -O (产生优化代码)联用.. 这一点非常有用因为你能在与最终产品尽可能相近的情况下调试你的代码. 在你同时使用这两个选项时你必须清楚你所写的某些代码已经在优化时被 GCC 作了改动. 关于调试C 程序的更多信息请看下一节用 gdb 调试 C 程序 . -pg 选项告诉 GCC 在你的程序里加入额外的代码, 执行时, 产生 gprof 用的剖析信息以显示你的程序的耗时情况. 关于 gprof 的更多信息请参考 gprof 一节. 用 gdb 调试 GCC 程序Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能: 它使你能监视你程序中变量的值.它使你能设置断点以使程序在指定的代码行上停止执行. 它使你能一行行的执行你的代码. 在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动 并且你将在屏幕上看到类似的内容: GNU gdb 5.0 Copyright 2000 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-redhat-linux.(gdb) 当你启动 gdb 后, 你能在命令行上指定很多的选项. 你也可以以下面的方式来运行 gdb: gdb fname>; 当你用这种方式运行 gdb , 你能直接指定想要调试的程序. 这将告诉gdb 装入名为 fname 的可执行文件. 你也可以用 gdb 去检查一个因程序异常终止而产生的 core 文件,或者与一个正在运行的程序相连. 你可以参考 gdb 指南页或在命令行上键入 gdb -h 得到一个有关这些选项的说明的简单列表. 为调试编译代码(Compiling Code for Debugging) 为了使 gdb 正常工作, 你必须使你的程序在编译时包含调试信息. 调试信息包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号. gdb 利用这些信息使源代码和机器码相关联. 在编译时用 -g 选项打开调试选项. gdb 基本命令 gdb 支持很多的命令使你能实现不同的功能. 这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令, 表27.1列出了你在用 gdb 调试时会用到的一些命令. 想了解 gdb 的详细使用请参考 gdb 的指南页. 基本 gdb 命令. 命 令 描 述 file 装入想要调试的可执行文件. kill 终止正在调试的程序. list 列出产生执行文件的源代码的一部分. next 执行一行源代码但不进入函数内部. step 执行一行源代码而且进入函数内部. run 执行当前被调试的程序 quit 终止 gdb watch 使你能监视一个变量的值而不管它何时被改变. print 显示表达式的值 break 在代码里设置断点, 这将使程序执行到这里时被挂起. make 使你能不退出 gdb 就可以重新产生可执行文件. shell 使你能不离开 gdb 就执行 UNIX shell 命令. gdb 支持很多与 UNIX shell 程序一样的命令编辑特征. 你能象在 bash 或 tcsh里那样按 Tab 键让 gdb 帮你补齐一个唯一的命令, 如果不唯一的话 gdb 会列出所有匹配的命令. 你也能用光标键上下翻动历史命令.
推荐内容
-
Linux下C应用程序开发
-
诗城听闻| 江油法院:努力打造高素质法院人才队伍
-
陈根:造血干细胞移植,成就全球第三例艾滋病治愈者
-
我的策划:向阳花
-
池州贵池区改善河湖生态
-
涟源市委政法委冒雨植树热情高 美丽涟源添新绿
-
蚌埠搭平台送岗位促就业
-
财联社2月18日电,美国2年期国债收益率下跌3个基点至1.44%。
-
中国连续第六年成为德国最重要贸易伙伴
-
“燃气管家进社区 党员志愿者在行动”主题党日活动
-
冬季风暴“尤尼斯”登陆西欧 荷兰至少5人死伤
-
相对论冬奥|大山里的冰球队:盼着冬天再到来
-
天猫回应改版更名转自营:不会改名,猫享只是一个探索项目
-
你奋力招手的样子太有爱了!
-
黄河五大水库蓄水量达327.96亿立方米
-
达川区金华学校全体师生认真收看“开学第一课”
-
新华时评:春风作雨催耕忙
-
四川省达州中学组织召开“四心”作风问题教育整顿动员大会
-
引黄春灌水量充足 黄河五大水库蓄水量达327.96亿立方米
-
同比增长18.6%,餐饮业拿什么实现了逆势增长?
-
风雪夜里千帐灯——内蒙古呼和浩特市开展重点区域核酸检测
-
云南康旅回应评级调整:目前所有债券均按期进行兑付
-
狂风刮飞帐篷、口渴只敢抿一小口水……这是他们的真实写照
-
青少年是冰雪运动发展的基础和未来——在滑雪运动中感受快乐
-
深圳地铁集团拟发行10亿绿色债券 期限3年
-
一场“恋爱”被骗近400万
-
节气里的中国丨雨水日:拂水惊梅中迎来春天
-
金科地产拟2月21日对“20金科02”付息,利率6.3%
-
OpenSea智能合约已完成升级,迁移将于2月26日截止
-
贵州将立法保护赤水河流域酱香白酒生产环境
-
华润系牵手金种子酒,白酒将迎来大洗牌时代
-
践行医者仁心,专注运动康复——陈宏博
-
数据公布!去年安徽初婚男女平均年龄均超30岁
-
安徽教育将迎来哪些改革?安徽大学将建未来学院
-
跑出项目建设加速度 烟台重点项目何以超时序推进
-
商务部回应美方将中国市场列为“恶名市场”:不负责任 坚决反对
-
十五的月亮十六圆
-
商务部:对欧盟向WTO起诉中国表示遗憾
-
雨水养生:早春天气乍暖还寒 衣食住行要注意这些
-
今日雨水 中医专家教你这样养生
-
《我们的冬奥》监制王诤:冰墩墩虽火,但我们对票房没有不切实际的幻想
-
“雪道尽头是骨科”?专家告诉你脚崴了怎么办
-
动力电池纷争四起,宁德时代的攻与守
-
今日雨水 中医专家教你雨水养生重点
-
环保行业上市公司一览,2021年环保行业上市公司有哪些?
-
胶粘剂上市公司有哪些,2021年胶粘剂龙头上市公司名单
-
200625股价分析 长 安B200625股票现在多少钱
-
端午股市放假几天?2020年端午节休市安排时间表
-
类稀土上市公司股票有哪些?类稀土上市公司龙头一览
-
稀土永磁板块股票有哪些?
-
2021年制冷设备上市公司有哪些?制冷设备上市公司一览
-
一种移动视频监控及定位系统的设计
-
递进式分配器的使用与维修
-
有了大存储深度示波器为什么还要用波形记录仪?
-
让百年虫就此沈睡不醒
-
被堵在上班路上
-
写文章要防止“内卷”
-
酒足饭饱之后,男子腹痛厉害,原来是突发急性胰腺炎
-
金融街控股拟发行11.4亿元中期票据 申购区间2.8-3.8%
-
珠海华发50亿元公司债券已提交注册 用于偿还有息债券
-
阳光城回复问询函:信用债集中到期导致面临巨大流动性压力
-
两江新区获评全国青少年校园足球试点区 多为“国”字号足球特色校
-
运城安国医院举办“护理不良事件管理及防范”讲座
-
84.41分!世界纪录!隋文静/韩聪双人滑短节目排名第一
-
华发集团拟发行10亿元超短期融资券,利率区间为2.2%-2.47%
-
量子技术相关上市公司有哪些?量子技术上市公司龙头一览
-
3D打印概念股龙头有哪些?3D打印概念股一览
-
地铁概念股都有哪些,地铁概念股股票代码
-
2021年油页岩概念股是哪些?
-
三网融合概念股有哪些,三网融合概念股龙头一览
-
硅整流二极管的检测方法
-
BCD七段数码管显示译码器电路
-
富士康否认关闭通路事业部
-
整流器原理
-
蜂鸣器原理
-
通讯:“中国路”使吉首都比什凯克旧貌换新颜
-
多地房贷首付比例 最低降至20%
-
安大团队在太阳暗条研究领域取得突破
-
星巴克涨、瑞幸涨……咖啡涨价,期货要背多大的锅
-
你买保险时都中过哪些招?保险套路调查
-
开年首月中债登托管量达3.7万亿元
-
1月我国外汇市场平稳运行
-
宁波银行(002142.SZ)完成发行100亿元金融债券
-
珠三角水资源配置工程又一超千米输水隧洞贯通
-
天津东疆跨境租赁资产突破1042亿美元 约占全国80%
-
馋哭了!点赞重庆交大别样“年夜饭”,花式宠留校学生太暖!
-
中国1月银行结售汇顺差278亿美元 外汇市场保持平稳运行
-
可转债市场遭调整 将迎一波赎回小高峰
-
虎力全开! 重庆医科大学袁家岗校区科技楼项目大力推进节后复工复产
-
安徽省黄山市让风光和美食相互成就
-
香港恒指全周累跌2.3% 专家料港股处于喘息期
-
页岩气概念股龙头股票一览,页岩气上市公司有哪些?
-
影视股票下跌2020 2020全国全年票房将损失多少?
-
阿比朵尔板块上市公司股票有哪些?
-
200018股票多少钱一股?神城B退200018股票价格是多少?
-
2019股市休市安排时间表 股市五一是怎么放假2019五一放假时间
-
A股2021年特钢龙头股票一览
-
广域网优化的技术实现和展望
-
松下布局:继电器和连接器杀伤力不容小觑
-
什么是基带同轴电缆
-
中国拉动全球贸易强劲复苏
-
国家市场监管总局:特斯拉召回部分国产Model 3和Model Y电动汽车
-
南阳路街道:居民遇事难解决 法律咨询来助力
-
青海“出省大通道”扁门公路完成进度过半
-
完善“一老一小”服务体系,上海打算这么干
-
西部航空拟增8条重庆始发航线迎夏航季
-
我的策划:玉米园
-
乡村振兴示范区建设的山西武乡实践
-
酉阳酉酬镇中心校举行开学仪式
-
酉阳黑水镇举行专场招聘
-
华润股份拟发行30亿元中期票据,利率区间为2.4%-3.4%
-
首创集团拟发行不超过20亿中期票据 期限3+N年
-
金科地产拟2月21日对“20金科01”付息,利率6%
-
天津滨海机场开展公务机“多式联运” 助相关企业恢复发展国际业务
-
财联社2月17日电,美国10年期国债收益率跌至1.967%,刷新日低。
-
美国参议员Cynthia Lummis:美联储购买比特币是一个好主意
-
圆通速递业绩快报:2021年净利润增长18.42%
-
早点下班!微信试水早十晚六:只因应届生向张小龙反映太卷?
-
恒生指数调整结果:综指扩容17只个股 小鹏、理想进入科技指数
-
浴“雪”奋战 交通保障助力平安冬奥
-
济南文旅集团万元奖金征集形象LOGO
-
就地过年
-
灵璧县娄庄镇宣圩小学:“开学第一课”,奋发新学期
-
生命至上!旅客突发疾病 青岛航空紧急备降
-
来感受崇礼太子城冰雪小镇“妆容”背后的建筑美学
-
北京怀柔红螺寺山居隆民宿,山泉溪流中的山间院子,直奔灵慧山顶
-
欢乐邻里节:虎虎生威闹元宵
-
浙江宁波港域铁矿石吞吐量破千万吨 打破单月纪录
-
洛阳钼业发行河南省内首单可持续发展挂钩债券 金额10亿元
-
北京怀柔雁栖湖观照山房民宿,景观山泉水温泉私汤,情侣必打卡!
-
4月起,压线、开车打电话等交通违法行为记分有调整!
-
日本央行在收益率曲线上展现的决心对其他央行也具有重要意义
-
“加码中国”让国际投资者得到什么优势?
-
中诚信国际行业展望|中国水泥行业(2022年2月)
-
阳光城:未能在豁免期内支付2726.25万美元境外债券利息
-
厦门邮政:“邮局咖啡”不存在任何“加盟中心”
-
信托艰难转型,投资者数量逆势增长56%!券商:把信托的钱挖过来
-
以为手握“茅台”,结果跌成韭菜:爱美客赴港受阻,股价拦腰斩
-
“老君托梦”天价酒 青海春天“旧镰刀”恐难割“新韭菜”
-
发改委浇灭铁矿石炒作热情 原料成本下降钢企能否获益?
-
避险情绪升温引多空博弈 国际金价“激战”1900大关!
-
可再生能源集中供能项目落地南部新城
-
辉县农商银行各项存款突破200亿元
-
农行盘锦分行加大信贷投放助力企业春耕备耕
-
山西清徐农商银行:柜面实力“定向升级”
-
墨奇科技入选北京市专精特新“小巨人”企业
-
SMART Modular发布DuraMemory DDR5 VLP RDIMM内存新品
-
詹姆斯-韦伯天文台通过已经激活的制导传感器达到新里程碑
-
香港特区政府:内地供港鲜活食品供应进一步增加 整体蔬菜批发价继续回落
-
瑞士运动员与冬奥防疫志愿者挨个相拥道别:会想念你们!
-
沙坪坝区召开人才工作征求意见座谈会
-
三车追尾 “罪魁祸首”竟是它——交巡警细数车内存在安全隐患险的小物
-
智慧景区建设标准指南
-
智慧春运,助力返程之路
-
2021年厄尔尼诺相关概念股有哪些,厄尔尼诺概念股一览
-
商业地产上市公司股票有哪些?相关商业地产龙头一览
-
饲料行业上市公司股票有哪些?
-
股票300071现在价格多少?华谊嘉信300071现在什么价?
-
摆钟工作原理
-
gsm是什么网络
-
称重传感器原理
-
石英管液位计的原理及特点
-
逻辑代数的基本公式和常用公式
-
校园视频监控系统解决方案
-
完美积分电路设计之我见
-
欣奕母婴:聚焦剖腹产宝妈,挖掘母婴新市场!
-
监管要求下调服务费,美团市值一日蒸发2000亿港元
-
老人做理疗被烫伤 提醒:保健设备使用需当心
-
机构:44家上市物企增值服务收入同比增长79.9% 美居服务增长迅速
-
渣打信用卡被抛弃?某大行员工:就没把他们当竞争对手
-
“中医真神奇” 针灸推拿成冬奥村“明星项目”
-
因编制虚假报表、资料,民盛保险代理被罚12万
-
悉成金融投资研究中心主任首席投资官张云虎:构建金融科技生态发展新格局
-
简康:一起看过了来,摆脱亚健康,这个品牌有“妙方”
-
富途证券:一年估值翻6倍,英国最大独角兽Revolut如何打造超级金融app?
-
银行理财产品能否提前赎回?提前赎回要支付赎回费用吗?
-
应时而生,全新上市 | IFENBEI室内隔音黑科技
-
浙江省创新型城市建设成效显著 6地进入国家创新型城市前50强
-
微信零钱能否免费提现?有哪些免费提现小技巧?
-
后系统革命!业之峰打造“好管家+类产业工人”
-
支付宝相互保理赔成功后何时到账?平台审核需要多久?
-
中华骄子•共向未来——著名艺术家李智泉致敬冬奥
-
辽宁加快构建“一圈一带两区”区域协调发展 加快实现全方位振兴
-
发改委:推动实际贷款利率在前期大幅降低基础上继续下行
-
十四部门印发《关于促进服务业领域困难行业恢复发展的若干政策》
-
快讯:美团盘中跳水超10% 十四部门要求外卖平台下调服务费
-
银保监会提示元宇宙四大骗局:恶意炒作元宇宙房地产圈钱
-
“以硅为贵”走不通了?硅料价格还要涨,龙头股价却不涨
-
港股元宇宙概念股跌幅扩大
-
8-12万车型有望电动化!宁德时代推巧克力电池换电
-
房价飙升、年轻人外流,日本京都考虑征收“空房税”
-
国内成品油价格上调 加满一箱92号汽油多花8.5元左右
-
保护肠道健康,从补充益生菌开始
-
抢占万亿医建新市场,5月21日CHCC2022第23届全国医院建设大会即将开幕
-
1月广东CPI环比增长0.5% 与PPI的“剪刀差”缩窄
-
成都通航产业园项目集中签约 涉及文化旅游、金融服务等领域
-
纺织行业景气度保持扩张态势 纺织企业经济效益稳步改善
-
安徽电缆科技馆正式开馆,打造特缆行业新打卡地
-
银保监会规范“隔离险” 不得片面宣传和恶意渲染炒作
-
市场端方便面价格无太大变化 行业巨头们面临业绩承压难题