程序从源代码到可执行程序

简介: 这篇文章介绍了从源代码到可执行程序的转换过程,包括预处理、编译、汇编和链接四个主要步骤,并提到了解释性语言、脚本语言和超文本语言的不同处理方式。

程序从源代码到可执行程序所要经过的步骤

语言的分类:

  1. 解释性语言
    解释性语言 -通过编译器-> 可执行程序文件(机器语言) 包括(库(动态库,静态库))
    C C++ java C# objective-c等等
  2. 脚本语言
    源代码就是可执行程序文件
    shell javascript python等
  3. 超文本语言
    HTML

Ubuntu共享文件夹的默认位置

cd /mnt/hgfs/

程序从源代码到可执行程序中间经历的步骤

  1. 预处理
    预处理指令的执行 宏的展开(简单的替换)
    gcc -E *.c

    gcc -E test.c
    #将生成的文件内容重定向到test.txt
    gcc -E test.c > test.txt
    #查看文件的内容
    cat test.txt
    
  2. 预编译

  3. 编译
    语法检查 程序优化
    生成目标程序 *.o文件(二进制文件)
    gcc -c *.c

    #可以直接指定输出的文件名
    gcc -c test.c -o a.o
    #输出汇编文件
    gcc -S test.c
    
  4. 链接
    将多个目标程序(包括库)链接成一个可执行程序文件
    gcc *.o -o *.exe

    #直接输出*.exe文件
      gcc test.o -o test.exe
    #默认输出一个a.out文件
    #文件的运行
    ./a.out
    ./test.exe
    

本文如有错误还请大佬们指正

相关文章
|
3月前
|
小程序
在Masm32中如何静态链接自己编写的库文件
在Masm32中如何静态链接自己编写的库文件
|
存储 自然语言处理 IDE
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
642 0
|
自然语言处理 编译器 Linux
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(二)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
593 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(二)
|
存储 Ubuntu Unix
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(一)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
367 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(一)
|
NoSQL 编译器 Linux
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(三)
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解
319 0
【三、深入浅出GCC编译器】一个源文件到可执行文件是如何生成的:GCC编译工具链及编译参数详解(三)
|
Ubuntu 编译器 Linux
Linux环境编译多个C程序文件
Linux环境编译多个C程序文件
539 0
|
Linux C语言 C++
Linux环境编译单个C程序文件
Linux环境编译单个C程序文件
262 0
|
NoSQL Linux C++
Linux环境编译动态库
Linux环境编译动态库
134 0
|
Linux vr&ar C语言
Linux环境编译静态库
Linux环境编译静态库
156 0
|
Linux C语言
【Linux操作系统】程序的编译和动静态链接
【Linux操作系统】程序的编译和动静态链接
177 0
【Linux操作系统】程序的编译和动静态链接