一个编译生成的可执行程序是用啥命令执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个编译生成的可执行程序是用啥命令执行相关的知识,希望对你有一定的参考价值。
参考技术A 预编译( 生成 hello.i 文件) 预编译的处理规则:1. 将所有的 “#define” 删除,并展开所有的宏定义。 2. 处理所有的条件2. 编译(生成汇编代码 hello.s) 编译过程是编译器gcc把预处理完的文件进行词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。编译过程可以使用如下命令
3. 汇编(生成hello.o文件)汇编是 汇编器as 参考技术B C语言 | 使用windows命令行下编译C语言 包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!
有关注我的朋友可能会知道我的C开发环境是:Notepad++与MinGW相结合,即用Notepad++写代码,用MinGW这个工具包中的gcc编译器进行编译。如:
在Notepad++里写代码:
在这里插入图片描述
在黑窗口下编译及运行代码:
在这里插入图片描述
此处,编译命令为:
生成的可执行文件默认为a.exe,输入a.exe即可运行该可执行程序。同样,也可添加-o参数给a.exe进行重命名,如把hello.c编译生成的可执行文件命名为hello.exe的编译命令为:
此时就可以输出hello.exe运行该程序,如:
在这里插入图片描述
学会这种编译方式后,之后转到Linux环境下进行编译也是类似的,编译的命令是一样的。之前已经分享过了这个环境的安装配置方法,可能有些朋友还不是很清楚怎么配置(配置方法请查看:使用Notepad++来开发C程序)以及不知道怎么使用。
这不,昨天有位朋友问我怎么在黑窗口下切换路径的问题,因为不会切换路径所以无法找到代码文件的位置。现教大家怎么切换路径:
(1)首先要知道怎么切换盘符,切换盘符示例:
在这里插入图片描述
(2)其次,就可以找到该盘符下你的代码的位置,比如我的代码在D:\c_test路径下,那么我就可以如下操作切换到D:\c_test路径:
在这里插入图片描述
还有方法是,你可以直接cd至你源代码所在目录的绝对路径,如:
在这里插入图片描述
在这里插入图片描述
此外,有两个小技巧要告诉大家:
(1)【Tab】键具有补齐功能,比如你输出cd c_,然后按下【Tab】键就可以自动补齐为:cd c_test。
(2)你不记得文件夹的名字时可以输入dir命令(类似于linux系统中的ls命令)查看当前文件夹下的所有文件及文件夹,如:
在这里插入图片描述
以上就是在黑窗口下切换至源码路径的一种方法,如果你不会的话,还有另一种更为简单的方法:
在记事本中就可以很方便的在黑窗口中打开你的源码所在的路径:
在这里插入图片描述
既然已经讲了那么多了,就顺便讲一下多个文件该怎么编译。其实和编译一个文件也差不多,编译多个文件就把要编译的文件都加到编译命令中就可以了,如:
该命令同时编译链接JSON.c和json_parse_now.c文件。
在这里插入图片描述
以上就是关于如何在window命令行下编译C程序的一点补充的笔记,掌握这一点就可以无缝切换到Linux下进行编译C程序了(相关笔记:Windows下体验Linux环境)。关于C程序的编译过程可查看往期笔记:【本质】你知道C语言编译的过程吗?以上分享如有错误,欢迎指出!
程序编译链接后形成的可执行文件是啥文件
参考技术A xxxx.exe可以执行文件 参考技术B C语言是一门计算机语言,有自己一定的语法。但是,C语言并不能直接被对象所理解,需要将C语言转变成可执行代码,即二进制代码。在C语言转变成二进制可执行代码时,是以工程为单位的。而一个工程中往往会包含多个C文件。因此,需要将每个C文件都编译成二进制代码。此时,每个C文件所对应的二进制代码是独立的。由于工程是一个系统,所以需要将所有的C文件二进制代码链接到一起,形成一个工程的可执行文件。综上,编译和链接就是指的将C文件转变成二进制代码,并将各个独立的C文件二进制代码链接到一起,形成一个可执行文件的过程。本回答被提问者采纳
以上是关于一个编译生成的可执行程序是用啥命令执行的主要内容,如果未能解决你的问题,请参考以下文章