1. 用GCC编译链接程序时,怎样才能不包含源文件
编译必须带源文件,链接的时候不需要。
编译的过程就是把源文件变成二进制文件(.o文件),链接的过程是把这些中间文件变成可执行和库文件。
2. c语言中的编辑,编译,连接,运行分别是什么意思
1、编辑:编写代码,制作C语言的源文件。
2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。
4、执行:运行可执行文件,这一步道是编写代码的最终目的。
(2)编译链接的程序扩展阅读:
DOS命令通常分为三类:内部命令、外部命令和批处理命令。
1、内部命令:
其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。
2、外部命令:
其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。
3、批处理命令:
实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
网络-运行命令
网络-C语言
3. 汇编语言的那个编译链接 的详细过程 每一步骤
LZ请跟着我的操作走
1.将写好的汇编代码保存为1.asm
2.将1.asm复制到c盘下
3.点开始(即左下标那个windows图标),找到运行,或(附件中的命令提示符)
4.找到运行后,输入cmd
或
command
5.进入后输入cd
c:\
6.输入masm
1;(1后面有分号),然后回车
7.输入link
1;然后回车
8.cls清屏然后回车
9.输入1.exe,然后回车
10.完成
至于怎么debug
步骤:
1-8同上
9.输入debug
1.exe,然后回车
10.完成
至于debug
中的
'r'
'd'
't'
自己上网找大把
我的系统是win
7,
你的masm
和
link
debug
要放在C:\Windows文件夹下
PS:
若有不明白的地方。
4. 宏和函数的区别以及C语言的编译链接过程
宏在编译之前,需要进行预处理,将宏直接提换成宏定义的代码,是直接替换,也就是说,在预处理之后,你再看代码,发现宏定义已经被替换过来了,你看到是你定义之后的那一串代码。
而函数,在编译之后,有一系列调用函数的过程,比如,传参,压栈等,这部分是编译器所做的。
C 语言编译链接过程:
test.c(原始代码) --> 预处理 --> test.i(经过预处理的)--> 编译 --> test.s(汇编代码)--> 汇编 --> test.o(目标文件,其实这部分已经是单个文件的完整二进制文件了,只是还不能执行,如果不懂这句话,可以再问我,其实这部分知识,平时也很少遇到) --> 链接 --> test (可执行文件,比如一个程序由3个代码文件共同生成,那么就会有3个.o格式目标文件,链接是把多个目标文件真正的联系在一起,比如a.o 中使用了 b.o中的一个函数,那么它们两个之间的地址是如何确定的(同理,可引申到使用函数库的问题,使用printf函数,也是需要链接器进行确定printf函数地址,才能知道如何调用。)这个就是链接器的作用)
5. 如何理解程序的编译,链接,加载等各个过程
编译是将高级程序语言(c,c++,c#等)转换成汇编语言,并且将变量翻译成寄存器
链接是将多个编译过的文件组合成一个文件,并且加入程序调用的库函数等所需的其他资源
加载是将以上处理过的后生成的指令(二进制码)在执行前加载到内存中,并提供地址翻译。
6. C语言中编译程序和连接程序的作用和原理是什么关键是原理,越详细越好,谢了~
详细了你也不一定能理解,你对底层的了解程度如何?
简单的来说编译就是生成语言无关的obj文件,连接就是将所有的obj文件连接起来,查找里面的符号按照COFF文件的标准生成dll或EXE。
7. 如何编译静态链接的程序,通过./configure 把参数-static传入Makefile。
./configure LDFLAGS=-static
8. 程序的编译链接过程
stdio.h 只是一个函数声明的头文件, 实现在已经编译好的库文件中,一般情况 IDE 会自动连接标准库,不需要你管。
9. c语言里面的编译和链接是怎么回事
C/C++语言的完整编译过程是
一、预编译
处理#define #if #include这类#开头的语句,这些称为预编译指令。这个过程中会把.h文件和.c/.cpp文件组合成最终交给compile过程的原文件。这个原文件是不包含任何#开头的语句的。所有#define定义的宏也会被替换。
二、编译
把上面那个原文件编译成.o或者VC里是.obj文件。这个文件保存了机器码化的函数、函数的描述、全局变量的描述、乃至段的描述等等。
三、连接
把可执行程序需要的所有的编译过程产生的.o或者.obj文件组合到一起。(这里也包括.lib文件,.lib文件件本质上就是打包的.obj文件集合)。另外连接过程还会组合一些其他数据,比如资源、可执行文件头等等。
10. 如何理解程序的编译,链接,加载等各个过程
编译是将高级程序语言(c,c++,c#等)转换成汇编语言,并且将变量翻译成寄存器
链接是将多个编译过的文件组合成一个文件,并且加入程序调用的库函数等所需的其他资源
加载是将以上处理过的后生成的指令(二进制码)在执行前加载到内存中,并提供地址翻译。