fatal error C1047: 对象或库文件“EDLib.lib”是使用比创建其他对象所用编译器旧的编译器创建的

fatal error C1047: 对象或库文件“EDLib.lib”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库

前几天在网上下载了一个算法(EDPF)的源代码,在vs2010上运行,出现了如下错误

1>LINK : fatal error C1047: 对象或库文件“EDLib.lib”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库
1>LINK : fatal error LNK1257: 代码生成失败




开始上网查了一下,以为是外接的EDLib.lib文件是在低版本的编译器上编译生成的,不能在高版本上使用。转而去找了一台vs2008的机器,运行后出现了这样的错误:

release模式下:



debug模式下:



vs2008出现这样的错误是由于版本没有升级,在官网下载了一个升级包vs2008sp1,安装后程序运行正确。下载地址,VS2008中文版升级包:http://www.microsoft.com/downloads/details.aspx?familyid=27673C47-B3B5-4C67-BD99-84E525B5CE61&displaylang=zh-cn

这时我才意识到,所用的EDLib.lib库是在一个升级版的vs2008上编译得到的,至于在release和debug模式下出现的错误不一致,我就不明白了。

既然这个lib库是在vs2008上编译的,vs2010应该是可以兼容使用的,我又检查了最开始在vs2010下运行的这个程序的配置,是在release模式下运行的,我改为debug模式运行后正确,检查了release和debug的配置,发现“项目->属性->配置属性->常规->全程序优化” 在两个模式下不同,将这个选项改为 “无全程序优化”,之后程序就可以在两种模式下正常运行了。至于里面的原因我不太清楚,不过可以参考博客http://blog.csdn.net/cdn_founder/article/details/7741076,或许对大家有帮助。

通过这次调试得到一个结论,引用别人lib或者dll的时候,出现连接问题一般都是由于当前编译器版本过低,向上无法兼容;另外一些原因是编译器的设置问题,导致无法正确解析库文件。

个人经验所得,望大家指正!




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: fatal error lnk1104: 无法打开文件"libc.lib" 是指在编译或链接时,编译器或连接器无法找到"libc.lib" 这个文件。 这个错误通常是由于以下几个原因引起的: 1. 文件不存在:编译器或连接器无法找到指定的"libc.lib" 文件。这可能是因为文件被误删除或移动到其他位置,或者您没有安装相应的文件。 解决方法:确保"libc.lib" 文件存在于正确的位置,或者重新安装相应的文件。 2. 路径错误:编译器或连接器无法找到"libc.lib" 文件的路径。编译器或连接器会按照默认路径进行查找,如果文件不在默认路径中,就会出现这个错误。 解决方法:检查文件的路径是否设置正确,并确保编译器或连接器能够找到该文件。可以使用编译器或连接器的选项设置路径。 3. 权限问题:编译器或连接器没有足够的权限读取或写入"libc.lib" 文件。 解决方法:以管理员身份运行编译器或连接器,或修改文件的权限,使其可被编译器或连接器访问。 总之,如果遇到"fatal error lnk1104: 无法打开文件"libc.lib"" 的错误提示,需要首先检查该文件是否存在、路径是否正确并且是否具有足够的权限。如果仍然无法解决问题,可以尝试重新安装相应的文件或寻求专业人士的帮助。 ### 回答2: fatal error lnk1104: 无法打开文件libc.lib” 是一个常见的错误信息,它意味着在链接过程中无法找到所需的 "libc.lib" 文件。 这个错误通常是由于以下几个原因引起的: 1. 文件路径错误:编译器在链接过程中需要找到 "libc.lib" 文件,但是由于文件路径设置有误,编译器无法定位到文件。解决方法是检查文件路径设置是否正确,并确保文件存在于指定路径下。 2. 缺少文件:在某些情况下,你可能没有安装所需的 "libc.lib" 文件。解决方法是根据你正在使用编译器和开发工具集,安装相应的文件。 3. 冲突的文件:如果你的项目同时引用了多个文件,并且其中一个文件与 "libc.lib" 冲突,就可能出现该错误。解决方法是检查项目的文件依赖关系,并确保没有冲突。 4. 编译器设置错误:在某些情况下,编译器设置可能会导致链接错误。解决方法是检查编译器设置,确保正确配置。 总结来说,解决 "fatal error lnk1104: 无法打开文件libc.lib”" 的方法通常是检查文件路径设置、安装所需的文件、处理冲突的文件以及检查编译器设置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值