发新话题
打印

[分享] 关于LNK2001错误的一些总结(c++)

关于LNK2001错误的一些总结(c++)

刚学习c++的时候,最常出现的错误就是LNK2001这个错误,究其原因,其实一句话可以解释:当程序调用函数(function1)时,没有找到function1具体的实现部分。
最常见的例子和解释:
  main or winmain函数:应该是选择工程类型的时候有错误,因为系统会根据
subsystem的选项来决定调用main或winmain作为程序的入口函数,如果是console,
会选择main, 否则如果是windows,则选择winmain。所以,如果程序没有main或者
winmain的实现部分,就会出现LNK2001.


  _beginthread, _beginthreadex:程序中隐式调用多线程的东西,比如你使用MFC
的类,所以这是应该选择/MD(use multithread cpp runtime library)编译指令,否则就会出现LNK2001.

  api函数:这时应该是没有link相关的Lib文件。因为dll形成的时候,静态的实现部分是放在lib文件,所以你使用函数时,系统会去找它的实现部分,如果没有,就出现
LNK2001.

  自己定义的函数:那很明显,就是只声明了函数而没有实现,包括类的函数都是。

最后总结就是如果你感觉程序没有问题的话,但是还是会有LNK2001这个错误,估计应该是你的main()写错了,呵呵

TOP

发新话题
 

惠大论坛 | 用户协议 | 管理团队 | 友情链接 | 广告联系 | 点击这里给我发消息

Copyright © 2008 - 2009 惠大论坛 www.huidabbs.com All Rights Reserved.
粤ICP备07034655号

站务管理员:小白 紧急手机:13428066758 QQ:704012066

声明:惠大论坛所有文章或图片仅代表发帖人个人观点,与本论坛立场无关。

遵守网络道德,拒绝任何人以任何形式在本论坛发表与国家现行法律、法规相抵触的言论。

版权声明:本站信息转载于其他网站,真实性未经证实,仅供您参考。如无意中侵犯了您的权益,请即刻联系本站,我们将在第一时间内删除该信息!