解决VS在编译的时候无法打开...obj文件的问题

27 篇文章 1 订阅

前段时间在链接自己编写好的动态库的时候,按照原先的方法,却遭遇失败的问题,提示少了什么什么.obj文件。在网上找了很多方法,试了很多,但是却都失败,感觉很不靠谱。最后在破釜沉舟的情况下,终于解决了,下面分享我解决的方法,希望可以帮到后来人。

要看一下Link命令行就知道了.
项目->属性->链接器->输入->附加依赖项.
在这里你会发现你前面设置的"附加依赖项"被IDE改写了.
例如你要加入一个ABC.lib的链接库,完整路径为"C:\Program Files\ABC.lib",
如果被IDE改写的话会变成"C:\Program" 

"Files\ABC.lib"
相应的命令行变成Link (...) "C:\Program"

 "Files\ABC.lib"
那么链接器会要求提供"C:\Program.obj"文件,由于该文件不存在,所以会返回上面的调试信息'LINK : fatal error LNK1104: 无法打开文件“C:\Program.obj”'!

这就是原因的所在:在文件夹命名的时候,文件夹名存在空格,导致编辑器将这个文件夹当做两个目录来解释了(“编译器很笨的,很多的时候,你的想法,他都不会知道的”)

解决的方法,其实也很简单。就是讲整个路径加上“”。

例如:

比如你这样设置C:\Program Files\XXX\lib\XXX.lib,表示你在项目中连接到这个XXX.lib,但是,在Program与File之间有一个空格,所以就解析成了C:\Program, 再所以,就出现了:C:\Program.obj无法打开,所以你设置的时候写成这样"C:\Program Files\XXX\lib\XXX.lib", 用"" 引号,将整个路径括起来就行了。这样编译器就不会存在二义性来解释你原先想设置的命令。

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值