注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

C++小知识59—动态库在配置选项中添加的错误  

2015-04-24 14:35:36|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
C++小知识59—动态库在配置选项中添加的错误
一个莫名其妙的错误,“C++小知识59—动态库在配置选项中添加的错误”,库的整个工程都没有动,结果同事说总报这个链接错误。然后就没有然后了,把相关的配置选项改了几下,没有发现什么别的问题。无语,只好去问了下Google,结果在一篇英文的回贴上发现了问题。
它的问题是这样的“Weird linker error linking to opencv… “error LNK1107: invalid or corrupt file: cannot read at 0x2E8opencv_calib3d231.dll”,然后下面有回帖:
If I would have to guess (partially based on the documentation of that error), I'd say you're trying to link directly against the DLL.
You probably want to link against its corresponding .lib file.
翻译成中文应该是:如果我不得不猜测的话,我想说的是你的LINK文件指向了DLL文件,而实际上你应该指向相应的.LIB文件。
想这群小菜鸟们估计啥都干得出来,大胆认为他们是把LIB换成了DLL,在“VS--属性---配置--链接器---输入依赖的附加项”的添加库看了看,果然是,换了就OK了。无语。
可能是孤陋寡闻的吧,编程快二十年了,这是第一次见到这种情况。
要想解决不出来类似的问题,有办法:
使用#pragma comment(lib,"xxx.lib")
自打来这儿后就发现他们不知道为什么喜欢这么用。
另外,百度上确实是少,但也有:
1>E:\xerces-c-3.1.1-x86-windows-vc-9.0\bin\xerces-c_3_1D.dll : fatal error LNK1107: ファイルが無効であるか、または壊れています: 0x2F0 を読み取れません
下面有高手回帖,“要用.lib文件连接,不要用DLL”。
  评论这张
 
阅读(268)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017