C++编译,链接

以前学习C++的时候半懂不懂,用微软的IDE,所以对于编译链接不是很了解,今天总算了些了解。


1、何谓编译,链接

高级语言(C,C++等等)要变成机器可执行的指令,需要“编译”,“链接”,“装入”三个过程,

编译:由编译程序将用户源代码编译成若干个目标模块,即.c/ .cpp----->.obj(windows) .o(unix),一般是一个源文件对应一个.obj文件,这个过程只是检查一下变量是否定义,并不会进行逻辑的检查

链接:链接就将各个编译后的模块组装起来,形成可执行的文件。这个时候,编译器并不管源文件在哪里,只要有中间文件(.obj文件)即可,在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。


2 注意:在编译时,编译器只检测程序语法,检查变量,函数等是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现。你需要指定函数的Object File.(这段来源于网络)


过程:源文件-----》中间文件----》可执行文件


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值