当前位置:首页 > IT行业

VC初学者的经典错误LNK2001详解

类型:转载   责任编辑:asp   日期:2007/03/01

    
推荐阅读
 ·11版本的新改进    ↓显示摘要↓
    摘要:小c目前已经出了11版本,好多机友都在问到底有什么改进,特此说明 改进的(暂时发现,以后再发现会再贴出来) 1:阅读短信时候,可以显示全来信息号码了(可以滚动),原来的09在读短信的时候,最上面显示的是手机号码,可以显示13位或者14位,如+86138********号码,如果*里面有一个以上的1数字,那么就可以显示出来,如果没有1那么......
    摘要:    “目前一些规模较小的软件企业把产品卖给用户之后,由于无能力对用户进行售后服务,加上用户缺乏必要的软件应用人才,从而导致不少软件一售出去就成为‘孤儿’。”昨日,有业内资深人士向本报记者透露目前软件行业的现状。  现状:问题软件产品维修难  据读者投诉,珠三角某家具厂今年3月份从国内某软件厂商购买了一套软件产品,该软件从第二个月开始在使用中出现了问题,家具厂多次催促软件厂商的工程师来检测,但对方却一拖再拖,甚至干......
    摘要:    “十一”黄金周临近,手机卖场将迎来销量最大的时段。消费者缘何愿意在黄金周购买手机?最主要的原因无非是新品频现和降价范围广、幅度大。这个黄金周的手机市场依然如此。  “十一”黄金周前后,国内外手机厂商将有近200款新品手机亮相。摩托罗拉公司计划在下半年推出12至13款新机,相当一部分会选择在“十一”黄金周上市。诺基亚和索尼、爱立信也在前不久各自发布了6至8款新手机。夏新将在国庆期间推出智帅系列的智能手机。cect将在节日期间推出数......

正文
  学习vc++时经常会遇到链接错误lnk2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其lnk2001错误,常常使人不明其所以然。如果不深入地学习和理解vc++,要想改正连接错误lnk2001非常困难。

  初学者在学习vc++的过程中,遇到的lnk2001错误的错误消息主要为:

  unresolved external symbol “symbol”(不确定的外部“符号”)。

  如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接库。

  以下是可能产生lnk2001错误的原因:

  一.由于编码错误导致的lnk2001

  1.不相匹配的程序代码或模块定义(.def)文件能导致lnk2001。例如, 如果在c++源文件内声明了一变量“var1”,却试图在另一文件内以变量“var1”访问该变量,将发生该错误。

  2.如果使用的内联函数是在.cpp文件内定义的,而不是在头文件内定义将导致lnk2001错误。

  3.调用函数时如果所用的参数类型同函数声明时的类型不符将会产生lnk2001。

  4.试图从基类的构造函数或析构函数中调用虚拟函数时将会导致lnk2001。

  5.要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部访问任何没有在该文件内声明的静态变量时将导致编译错误或lnk2001。

  函数内声明的变量(局部变量) 只能在该函数的范围内使用。

  c++ 的全局常量只有静态连接性能。这不同于c,如果试图在c++的多个文件内使用全局变量也会产生lnk2001错误。一种解决的
下一页

标签:

发表新评论

  • 网页地址和电子邮件地址将会被自动转换为链接。
  • 允许的 HTML 标签: <p> <br> <a> <img> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • 行和段被自动切分。