编程的流程

一个编程的基本流程包括编辑、编译和连接三大步骤。

1.编辑

编辑即编写源代码,可以使用windows、linux自带的文本编辑工具进行编辑,也可以使用Visual Studio、Notepad++等编辑器进行编辑。

2.编译

编译是将某种语言(如c/c++)写成的源代码编译成目标文件(.obj)

3.连接

连接(link)是将多个目标文件和它们调用的库文件连接生成可执行文件的过程,连接器(linker)是进行这一过程的软件。常用的连接器有windows下的link.exe,linux下的ld等。

4.运行

运行(run)相当于在windows下双击可执行文件(exe文件)或在终端命令行运行程序编译连接生成的可执行文件。
流程图如下所示:
编程的流程_第1张图片

以gcc为例展示流程

GCC 编译器在编译一个C语言程序时需要经过以下 4 步:

1)将C语言源程序预处理,生成.i文件。
2)预处理后的.i文件编译成为汇编语言,生成.s文件。
3)将汇编语言文件经过汇编,生成目标文件.o文件。
4)将各个模块的.o文件链接起来生成一个可执行程序文件。

其中.i文件、.s文件、.o文件可以认为是中间文件或临时文件,如果使用 GCC 一次性完成C语言程序的编译,那么只能看到最终的可执行文件,这些中间文件都是看不到的,因为 GCC 已经经它们删除了。
编程的流程_第2张图片

编辑源文件

main.c

#include 
int main(void)
{
    printf("hello word!\n");
    func_a();
    func_b();
    return 0;
}

func.c

#include 
void func_a(){
    printf("FUNC_A\n");
}

编译

gcc -c main.c func.c

虽然没有定义finc_b函数但此步不报错,生成目标文件main.o、func.o
编程的流程_第3张图片

链接

gcc main.c func.c -o app
#error
/tmp/ccwMSLaa.o:在函数‘main’中:
main.c:(.text+0x1e):对‘func_b’未定义的引用

链接时报错,删除main.c文件中 func_b(); 一句后成功生成可执行文件。
编程的流程_第4张图片

运行

./app
#结果
hello word!
FUNC_A

参考:《OpenCV入门教程》作者:于仕琪
gcc编辑器:http://c.biancheng.net/view/663.html

你可能感兴趣的:(C/C++)