c)变成可执行(.exe)文件要经过几个步骤?
一个源程序(.c)变成可执行(.exe)文件要经过几个步骤?详细一点“目标代码”和最终程序有什么区别? “连接”是什么意思? 编译过程中会生成汇编代码吗? ????????????????????????? 源代码…+头文件……………目标代码…库、引导代码…\ …………预处理器…编译器…………………连接器………可执行文件 .c…………….cpp…………………….o……………………/ ?????????????????????????
以GCC编译器为例,可以分为四步。 第一步是预处理,包括语法检查等工作。 gcc -P abc.c 第二步由源程序生产汇编语言代码。 gcc -S abc.c 会生成abc.s文件,这个文件里就是汇编代码。 第三步编译器生成目标代码,一个源文件生成一个目标代码。 gcc -c abc.c 会生成abc.o 第四步连接器从目标代码生成可执行文件。 gcc abc.o 目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
在linux下用gcc -o abc abc.c就可以了
“目标代码”比“exe文件”说的要笼统一些 “目标代码”在DOS/Windows系统里就是“exe文件” “目标代码”在linux系统里就 没有特定后缀名,只是有个可执行属性的任何文件 现在我所说的“目标代码”可以认为是“可执行的最终目标代码” 有些情况中“目标代码”并不是可执行文件比如java程序,最后生成个jar文件,必须用java xxx。
jar来执行。还有些工具本身“目标代码”生成的就是中间产物,还需要别的步骤才能执行。 以下解释以C++为例: 源代码(source code) 是由。c 。h 。cpp 。hpp 。cxx 。hxx 这种文件组成,所谓的头文件(。h 文件)是其中一(几)种 源代码(不管是C++还是汇编)-->[编译]-->。
obj文件(linux里是。o) 。obj+。lib(linux里是。o)-->[连接]-->。exe C/C++编译之中没有汇编代码文件生成,但是这个步骤是内部进行过了的。可能有些编译器比如VC6。0可以让这个“汇编代码文件”生成出文件来 。
你点*.c那个文件 ,点下右键选择重命名 ,把c换成exe就OK了。就这一步
答:集成环境里面找BUILD,然后点一下就可以了.命令行的话先编译后链接,如:TC.exe XX.c 然后会生成XX.obj 然后Link.exe XX.obj不...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>