GCC编译命令有哪些
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章给大家介绍GCC编译命令有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。大家没有IDE时候,可能一开始有点不习惯,但是坚持用一段时间,你就会爱上文本编辑器+编译器的模
千家信息网最后更新 2024年09月22日GCC编译命令有哪些大家没有IDE时候,可能一开始有点不习惯,但是坚持用一段时间,你就会爱上文本编辑器+编译器的模式了,不管是编译速度还是编译时的界面而言,这都方式都比IDE炫酷,毕竟再怎么样也是免费的,是吧。 这里再来讲一下终端,可能绝大多数同学以前只使用过Windows底下的"CMD",即"命令提示符",我还听过有人把它叫做DOS界面等等。而在Linux里面有一个长得差不多的东西,叫做终端,或者控制台等等。如图1所示。 图1 Windows下的"命令提示符"和Linux下的"终端"
看图1上的两张图片都是黑不溜秋的界面,两个东西难道不一样吗?其实啊,这两个是完全从设计哲学角度就不一样的东西。我们先来说终端,这个终端是Linux从Unix时代继承过来的产物,可能现在提到计算机,大家第一反应就是应该像笔记本或者台式机一样的东西,很小巧,每人一台在办公室办公。其实早期的计算机生成成本太贵,体积太大,都是以小型机或者大型机形式存在的,可能每个公司也就一台,其他用户都是使用串口插到这台大型机上面来工作的,他们面前只有一个叫做"终端"(或者控制台的设备,上面跑的程序叫做Shell)档或者其他办公,因此Unix最早期的设计哲学就是中心化数据处理的多用户多任务操作系统,而Linux完美继承了这一点。这种方式是不是有点类似于现在的服务器架构?这就是为什么,其他领域Windows都比Linux占优势,就是服务器领域这块蛋糕一直在Linux嘴里。后来由于Linux操作系统引入了GUI,而这些GUI都只是Linux系统里面的一个进程,真正的Linux还是那个终端。如图2所示。
图2 历史上的"终端
而Windows不一样,Windows诞生之初,个人电脑的业务就已经开始蓬勃发展,而他们最早为IBM PC开发的DOS系统叫做MS-DOS,当时有很多版本的DOS,微软的DOS只是其中一个,顺便说一下,DOS都是单用户,单任务操作系统,仅仅是为了用户操作磁盘里面的数据和软件而设计的。后来微软真正独领操作系统风骚的,是其推出了Windows,其实Windows界面和最早只是DOS里面的一个程序而已,用过Windows95的就知道,开完机电脑呈现给你的是一个命令行,要输入一长串命令才可以进入操作系统,这种机制直到Windows XP才被取消,Windows成为真正的Windows。理所当然,由于某些用户的习惯"DOS界面"下来了。 DOS和Shell的区别大致如下。 1,shell区分大小写,DOS不区分大小写; 2,一般而言,shell的命令的开关可以简写(比如说"-a -l"可以简写为"-al"),而DOS的则不允许; 3,在脚本编写上的语法差别极大,比如说:两者的流程控制语句语法不同,变量的语法不同等; 4,shell可以在UNIX、GNU/Linux和Win下(cygwin bash shell)工作,DOS则还没有听说过能在Win/DOS以外的系统中工作; 5,shell原生支持正则表达式,DOS则不是。 后来Windows 7之后,微软也在个人操作系统上面加入了一个叫做"Power shell"的软件,而我们之前VS Code里面自带的终端软件就是Powershell。以上就是Shell和命令提示符的介绍。 Shell命令在操作时,输入命令的格式为:命令参数1 参数2 … 参数n。来看之前常用的编译命令"gcc -o hello helloeorld.c"如图3所示。注意,在shell里运行GCC一定要区分所有大小写。
图3 GCC常用选项
GCC的参数功能还有很多,我们再一起来看几个。如图4所示,这个表只是罗列了几个常用的参数,如果有其他新参数需要使用,我们到时候再说。注意一下图3里面的参数1就是我后文中所说的"选项",这两个是一回事情。 还是以之前的helloworld.c为例子,我们之前说到,一个程序的编译分成"预处理"->"编译"->"汇编"->"链接"这四个步骤,接下来我们用gcc一步步来看一下他们所产生的中间文件。 (1)只激活预处理,不进行后续三步,此时使用的命令应该为"gcc -E ./helloworld.c > propress.c",这个功能需要将预处理完成之后的文件存储到一个新的文件里面,我们这里使用了"propress.c"这个名字。如图4所示。
图4 gcc预处理命令
(2)只做编译,不进行后续步骤。此时使用的命令应该为"gcc -S .\helloworld.c",运行完成后,编译器会在当前文件夹里面输出一个名叫helloworld.s的文件,它就是GCC生成的汇编语言。如图5所示。
图5 gcc生成汇编语言文件 (3)只生成目标文件,不进行后续的链接步骤。此时使用的命令应该为"gcc -c .\helloworld.c",运行完成后,编译器会在当前文件夹里面输出一个名叫helloworld.o的文件,它就是GCC生成的目标文件。如图6所示。VS Code一开始可能无法打开二进制文件,大家需要去应用市场自行下载一个叫"binary"的插件
图6 目标文件
(4)最后一步就是利用gcc生成最后的可执行文件,使用命令"gcc -o helloworld helloworld.c"最终会生成可执行文件helloworld.exe,注意此时的.exe后缀名是自动加上的,可以隐藏。 此外,如果大家对终端操作起来还是觉得不习惯,有一个叫做Dev Cpp的软件也是个集成MinGW的IDE,大家可以自己去尝试。
这篇文章给大家介绍GCC编译命令有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
关于GCC编译命令有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
命令
文件
编译
就是
终端
系统
参数
如图
生成
操作系统
界面
东西
只是
用户
软件
还是
预处理
两个
大小
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全和信息安全的范畴
大数据网络技术在哪学
企业网络安全管理如何维护
数据库专业是青春饭吗
智能软件开发的企业
完美服务器进不去了
盈环网络技术上海有限公司
mongod删除数据库
网络安全文科生可以报吗
网络安全的四大要素为()
彬伦网络技术工作室
党建活动网络安全防线
无法接通服务器
连接远程服务器time out
2018网络安全宣传动态
智能化网络技术推广排名靠前
画出软件开发模型的v模型图
怎么设置2列同时重复数据库
哈啰顺风车抢单软件开发者
检索期刊论文用什么类型的数据库
网络安全 网评文章
数据库服务器怎么打开
.md什么数据库
电信企业网络安全责任书
开源云计算平台数据库有哪些
服务器pci驱动安装
电脑访问不了手机数据库吗
数据库系统设计的重要性
成都网络安全的公司
前瞻网数据库360