GCC编译命令有哪些
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家介绍GCC编译命令有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。大家没有IDE时候,可能一开始有点不习惯,但是坚持用一段时间,你就会爱上文本编辑器+编译器的模
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
产业科技政策互联网平台
网络安全实施细则属于密件吗
数据库设计人员与用户的桥梁
山东bim软件开发公司
网络安全公司工作规划
数据库的表怎么修改不了
外购入库多级审核数据库表
cs起源 服务器
计算机防火墙技术数据库
浦东新区项目数据库服务价格查询
网络安全上市公司龙头企业
版式拆单软件开发
网络安全培训学校名称
网络安全主题宣传板报
数据库的图片字段类型
c 软件开发瀑布
数据库utf8中文乱码
数据库安全标准有哪些内容
河北威力软件开发怎么样
修改爱思数据库
教育网络安全交流发言
湖南大佬软件开发有限公司
软件开发助理职责
网络安全监管存在的困难
哪个代理服务器安全吗
实体类连接数据库
龙口直播软件开发解决方案
常见中文论文数据库主要有
潍坊苹果软件开发哪家靠谱
如何利用公开数据库写医学论文