关于linux下vim编程流程的问题,急
我在linux下面用vim写了一个简单的cpp的文件,然后怎么通过编译让它调试出来结果?是不是我还要写个makefile文件?本人因学习原因初次接触vim,请各路大神指点...
我在linux下面用vim写了一个简单的cpp的文件,然后怎么通过编译让它调试出来结果?
是不是我还要写个makefile文件?
本人因学习原因初次接触vim,请各路大神指点一二,如果能够大致讲下整个的流程 那就感激不尽了!
大哥 把大致流程能给说下么? 展开
是不是我还要写个makefile文件?
本人因学习原因初次接触vim,请各路大神指点一二,如果能够大致讲下整个的流程 那就感激不尽了!
大哥 把大致流程能给说下么? 展开
4个回答
展开全部
在C程序的编译过程中,依次要进行预处理、编译、汇编、链接四个阶段。这里通过编译C文件test.c来展示GCC的工作流程。
例如:
test.c
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
1.预处理阶段
由于在test.c中使用了头文件stdio.h,所以GCC在编译时首先要把头文件stdio.h中的内容加载到test.c中的首部。
在shell中输入命令“gcc -E test.c -o test.i”。其中,参数E告诉gcc命令只进行预编译,不做其他处理;参数o用来指明输出的文件名为test.i。
2.编译阶段
在shell中输入命令“gcc -S test.i -o test.s”。其中,参数S告诉gcc命令只进行编译,不做其他处理。命令运行完毕后就会产生一个名为test.s的汇编文件。
3.汇编阶段
汇编的任务是把汇编程序翻译成CPU可以识别的二进制文件,该文件又称为目标文件。在shell中输入命令“gcc -c test.s -o test.o”,其中,参数c告诉gcc命令只进行汇编,不做其他处理。命令运行完毕后会产生一个名为test.o的目标文件。在Windows系统中,目标文件的后缀是obj。
4.链接阶段
链接阶段的任务就是把程序中所有的目标文件和所需的库文件都链接在一起,最终生成一个可以直接运行的文件,称为可执行文件。
在shell中输入命令“gcc test.o -o test”,运行完毕后就会生成一个名为test的可执行文件。输入命令“./test”执行该文件,就可以得到test文件的运行结果“Hello world!”。
例如:
test.c
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
1.预处理阶段
由于在test.c中使用了头文件stdio.h,所以GCC在编译时首先要把头文件stdio.h中的内容加载到test.c中的首部。
在shell中输入命令“gcc -E test.c -o test.i”。其中,参数E告诉gcc命令只进行预编译,不做其他处理;参数o用来指明输出的文件名为test.i。
2.编译阶段
在shell中输入命令“gcc -S test.i -o test.s”。其中,参数S告诉gcc命令只进行编译,不做其他处理。命令运行完毕后就会产生一个名为test.s的汇编文件。
3.汇编阶段
汇编的任务是把汇编程序翻译成CPU可以识别的二进制文件,该文件又称为目标文件。在shell中输入命令“gcc -c test.s -o test.o”,其中,参数c告诉gcc命令只进行汇编,不做其他处理。命令运行完毕后会产生一个名为test.o的目标文件。在Windows系统中,目标文件的后缀是obj。
4.链接阶段
链接阶段的任务就是把程序中所有的目标文件和所需的库文件都链接在一起,最终生成一个可以直接运行的文件,称为可执行文件。
在shell中输入命令“gcc test.o -o test”,运行完毕后就会生成一个名为test的可执行文件。输入命令“./test”执行该文件,就可以得到test文件的运行结果“Hello world!”。
展开全部
makefile是为了方便大型工程的编译。
单文件编译可以直接用gcc。
首先用vim test.cpp写程序,保存。
然后gcc -g test.cpp
然后gdb a.out
gcc -g test.cpp中,-g选项是为了加入调试符号,便于调试,没有指定生成文件,默认的为a.out
gdb a.out加载a.out程序
然后敲l输出程序的源代码
b main在main函数入口处下段
s命令单步跟进
n命令单步步过
连续的动作,回车就行了,gdb会执行上次敲的命令
s单步后,再回车还是单步
单文件编译可以直接用gcc。
首先用vim test.cpp写程序,保存。
然后gcc -g test.cpp
然后gdb a.out
gcc -g test.cpp中,-g选项是为了加入调试符号,便于调试,没有指定生成文件,默认的为a.out
gdb a.out加载a.out程序
然后敲l输出程序的源代码
b main在main函数入口处下段
s命令单步跟进
n命令单步步过
连续的动作,回车就行了,gdb会执行上次敲的命令
s单步后,再回车还是单步
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编写的文件为test.c
先编译gcc test.c -o test
然后运行 ./test
先编译gcc test.c -o test
然后运行 ./test
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 gcc 命令啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询