windows-Linux对比 2017 vc++

安装:

https://www.jianshu.com/p/320aefbc582d

1、VC++ 编译与链接的过程:

1.1 windows下

           程序的生成过程分为两步:
           编译:compile,将*.cpp ‐>  *.o          ###windows下生成  .obj   的文件 在debug目录下。windows下生成 .obj 而Linux下是 .o 文件
           链接:link, 将所有的*.o ‐>  executable

在Linux下开发时,要严格区分这两步过程。


使用 ‐c 选项,生成中间文件*.o
一、编译
g++  ‐c main.cpp  ‐o  main.o
g++  ‐c other.cpp ‐o  other.o
(加上‐c就表示进行的是compile,不是link)
二、链接
g++  main.o  other.o  ‐o  helloworld
(没有加‐c,表示生成最终的可执行程序)

三、编译过程

编译过程分为四步:预处理、编译、汇编、连接

扫描二维码关注公众号,回复: 5856979 查看本文章

1. 预处理


         预处理主要处理源文件中的“#include”、“#define”等预处理等命令
         预处理主要完成的工作有(参考:《程序员的自我修养》):
         (1) 删除 #define,展开宏
         (2) 处理条件编译指令。预处理程序先判断条件,再根据条件修改源代码
         (3) 删除注释
         (4) 添加行号,以及文件名标识。便于调试
         (5) 删除“#include”,插入相应的头文件

2. 编译(这一步vs studio 基本省略了。)

         生成汇编代码的过程。

         使用gcc -S main.i -o main.s 命令,编译后得到main.s 文件

3. 汇编 main.o

    将汇编代码转化成 机器指令。

    使用gcc -c main.c -o main.o 命令,得到目标文件main.o

4. 连接 (链接时候可能使用到动态链接库--有时候编译成功链接却失败了,可能是这个原因)


    通过连接库文件,将目标文件转化成可执行文件。
    使用命令 gcc -ld
    一般情况下,我们直接使用gcc main.c -o main就可以生成可执行程序了。
   当然,在Windows下使用gcc时,生成的可执行文件不再是main.out ,而是main.exe文件
 

猜你喜欢

转载自blog.csdn.net/weixin_42053726/article/details/88249492