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,表示生成最终的可执行程序)

 

三、编译过程

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

 

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文件
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值