vs系列集成开发环境使用的编译器cl和链接器link

源代码到最终的程序生成,之间经历了编译、链接的过程。但是vs系列集成开发环境,为了方便程序员工作,将编译链接过程都隐藏起来,只需选择工程,右击,点击“生成”,即可生成exe、dll、lib等文件。然要做到知其然,知其所以然,要知道vs系列集成开发环境使用了那种编译器、哪种链接器,经过了怎样的编译链接过程,从而生成最终的文件。

编译器:cl(cl.exe)

链接器:link(link.exe)

使用cl和link编译链接的示例,如下

1.  编写源代码。创建编写文件,test.c

#include<stdio.h>

int main(void)
{
    printf("compile&&link test\n");
    getchar();
    return (0);
}

2.  编译。打开cmd窗口,进入test.c目录,执行cl /c test.c进行编译,生成test.obj文件

    FAQ:

    1) 'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件。

        解决方法:将cl.exe所在路径((cl.exe位于\VC\bin))加入系统环境变量;重启cmd窗口

    2) 编译器cl找不到mspdb80.dll(mspdb1000.dll或者mspdb140.dll等,视vs版本而定),无法启动

        解决方法:找到该.dll,加入到cl.exe所在的文件夹(该动态链接库所在文件夹Common7\IDE)

    3) 链接错误,stdio.h:不包括路径集

        解决方法:执行Common7\Tools\vsvars32.bat(vsvars32.bat 文件用于设置适当的环境变量以启用命令行生成)

    注意: 执行cl test.c,会直接生成test.obj文件和test.exe文件,因为执行cl test.c在编译后会自动执行链接。因此此处为方便理解,分开执行编译和链接的过程。cl命令后的/c参数代表,只编译不链接。

3. 链接。

    link test.obj 生成test.exe文件

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值