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

前段时间在链接自己编写好的动态库的时候,按照原先的方法,却遭遇失败的问题,提示少了什么什么.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", 用"" 引号,将整个路径括起来就行了。这样编译器就不会存在二义性来解释你原先想设置的命令。

时间: 2024-10-05 21:18:01

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

解决VS 中 出现致命错误 RC1015: 无法打开包含文件 'afxres.h' 问题

在试用VS2010时一个问题困扰了我,就是打开c++项目后,rc的dialog进不去,没法拖控件,把我给抓狂的...而且网上大部分说的都是Directions的问题..我的问题明显不是这个问题. 于是我就抓狂了,最后好不容易找到了解决办法,出错原因是因为不小心把aps文件给删掉了,只需要手动用vs执行一下.rc文件(直接找到目录双击打开即可),就会自动生成相对应的.aps文件. 出现.aps之后,项目就可以正常了! 请叫我红领巾! 解决VS 中 出现致命错误 RC1015: 无法打开包含文件 '

vs2010项目使用vs2013编译报错 无法打开包括文件:“winapifamily.h”

我的老项目是vs2010下的项目.最近安装vs2013后,打开sln解决方案,调试运行报错 C:\Program Files (x86)\Windows Kits\8.0\Include\um\winsdkver.h(21): fatal error C1083: 无法打开包括文件:“winapifamily.h”: No such file or directory 在项目包含目录中包含了这个Windows Kits\8.0\include的东西. 仔细回想了一下是以前编译webRTC使用的,

解决Cocos2d-x编译错误: 无法打开 源 文件 "extensions/ExtensionExport.h"

#include "base/ccMacros.h"

[Eclipse] eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件【待解决】

eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件: 1. 设置eclipse ctrl + 左键打开源文件代码,如下图,设置都正常 2. 在网上找了很多种办法,均失败,在stackoverflow找到答案,但验证失败: http://stackoverflow.com/questions/18867178/ctrlclick-aka-hyperlink-on-xml-not-working?rq=1 Install WTP XML Editor plugin Ins

vs2008安装无法打开数据文件daffactory.dat

安装vs2008(VS2008TeamSuite90DayTrialCHSX1429243)的时候遇到问题显示:无法打开数据文件'C:\Users\用户名\AppData\Local\Temp\SIT30368.tmp\deffactory.dat',如下图 解决方案:新建一个名为'deffactory.dat'的文件,然后用记事本打开,添加如下文字 [Version]Signature = "$Windows NT$"Provider="Microsoft Visual S

VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法

在WIndows 7操作系统上同时安装VS2012与VS2015并用VS2012创建MFC程序时弹出编译错误"fatal error C1083: 无法打开包括文件:"mprapidef.h": No such file or directory"的解决办法: I installed vs2015 and vs2012, then the same problem occurs,however, I find a solution. open visual stud

解决Visual Studio编译错误:在证书存储区中找不到清单签名证书

解决Visual Studio编译错误:在证书存储区中找不到清单签名证书 [1]方法一:右击项目→属性→签名→将<为ClickOnce清单签名(M)>前面的勾去掉. [2]方法二:用记事本打开相应的csproj文件,调整节点值:<SignManifests>true</SignManifests>将true修改为false. [3]方法三:在签名中创建一个新的签名.本方法未测试. 解决Visual Studio编译错误:在证书存储区中找不到清单签名证书,布布扣,bubu

linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol &amp;#39;[email&#160;protected]@GLIBC_2.2.5&amp;#39;

解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件里引入了#include "cocos-ext.h",在进行C++编译的时候会遇到例如以下错误: undefined reference to symbol '[email protected]@GLIBC_2.2.5'/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command li

VS2013/2012 下无法打开 源 文件“stdafx.h”的解决方法

VS2013/2012下代码一写上去保存就报错了,下方提示无法打开 源 文件"stdafx.h" 如图: 百度了一下,对于VS2010有这样的方法可以解决: 在项目属性中展开C/C++,选择常规,在附加包含目录里加入"$(ProjectDir)" 大家可以看到在我的VS2013下完全没作用. 后来发现这样就成功了: 那个预编译头文件是自己就有的,我想VS2013/2012默认就包含了"stdafx.h"吧,所以不必再写一次 VS2013/2012