VS2013打开改变路径之后的解决方案(含opencv以及属性表)
2016-08-17 00:45
267 查看
最近遇到这样的一个问题,我将一个C++解决方案(用到opencv库,并添加了属性表)的整个文件夹复制到另外一个路径下面,在用VS2013打开.sln的时候遇到了一些问题。
至于属性表是什么,以及为什么要添加属性表,可以参见我的另一篇博文:http://blog.csdn.net/qq295456059/article/details/50815290
下面是具体的情况:
在遇到这个问题的时候,我先是写了一个最简单的程序进行测试:
1、对于最最普通的情况,我新建一个VS工程,在main.cpp写下如下的代码:
2、进而,我继续尝试了另外一个简单的程序:
成功运行之后,我将整个解决方案的文件夹复制到另外的路径下,并用VS2013打开新路径下的.sln,这个时候便出错了:错误如下,
大概的原因是由于在项目中添加了属性表,而改变了路径之后找不到属性表了。
来到这一步,解决方法就很明确了,首先,如果需要改变路径的解决方案中含有新添加的属性表,那么在改变路径之前,先将新添加的属性表移除,然后再赋值文件夹到新的路径,在新路径下打开.sln文件,然后重新为解决方案添加属性表,这样就不会出现找不到属性表的情况了。
虽然这只是我最近遇到的情况,打不开解决方案可能还有其他许多的原因,但还是希望能对朋友们有所帮助!
------------------------------------------------------------------------------------------------
*****************************************************************************
------------------------------------------------------------------------------------------------
补充于2016.9.20
今天再次遇到由于属性表问题而打不开.sln文件的事情,重新回顾了之前的思路,感觉上面写的有一些啰嗦。
上面写了那么多,关键就在于属性表opencv_3.1.props并没有位于test2项目的文件夹下面,如果添加的属性表存在于项目文件夹下面,无论如何复制test2项目文件夹,都可以直接打开.sln。
其实,关于属性表的路径,是以相对路径的形式,记录在与项目同名的.vcxproj(如:test2.vcxproj)文件里面。由于记录的是相对路径,所以如果添加的属性表不在项目文件夹下面的话,更换项目文件夹的路径之后,依照该相对路径显然已经找不到属性表,所以自然就报错了。
最最简单的办法就是直接打开.vcxproj文件,将里面import该属性表的语句去掉,然后就能够打开.sln文件了。
具体参考链接:http://blog.csdn.net/jenny_84/article/details/44673933
当然,要成功编译,还得重新添加属性表。
至于属性表是什么,以及为什么要添加属性表,可以参见我的另一篇博文:http://blog.csdn.net/qq295456059/article/details/50815290
下面是具体的情况:
在遇到这个问题的时候,我先是写了一个最简单的程序进行测试:
1、对于最最普通的情况,我新建一个VS工程,在main.cpp写下如下的代码:
#include<iostream> using namespace std; int main() { cout << "Hello!I am Li Chenyang!" << endl; }成功运行之后,我将整个解决方案的文件夹复制到另外的路径下,并用VS2013打开新路径下的.sln,成功打开,并可以正常编译运行。这说明,在这种情况下,改变解决方案文件夹的路径不影响VS2013对.sln的打开,这个时候,我渐渐意识到,由于使用opencv库而添加的opencv_3.1.props才是真正的“罪魁祸首”!
2、进而,我继续尝试了另外一个简单的程序:
#include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { Mat img; }与上面的不同之处在于,这里用到了opencv库,需要对VS2013进行相应的配置,所以我在属性管理器中为项目test2添加了一个现有的属性表opencv_3.1.props,这个现有的属性表里面是一些关于opencv库的配置,具体的可以参考我上面提到的博文。
成功运行之后,我将整个解决方案的文件夹复制到另外的路径下,并用VS2013打开新路径下的.sln,这个时候便出错了:错误如下,
大概的原因是由于在项目中添加了属性表,而改变了路径之后找不到属性表了。
来到这一步,解决方法就很明确了,首先,如果需要改变路径的解决方案中含有新添加的属性表,那么在改变路径之前,先将新添加的属性表移除,然后再赋值文件夹到新的路径,在新路径下打开.sln文件,然后重新为解决方案添加属性表,这样就不会出现找不到属性表的情况了。
虽然这只是我最近遇到的情况,打不开解决方案可能还有其他许多的原因,但还是希望能对朋友们有所帮助!
------------------------------------------------------------------------------------------------
*****************************************************************************
------------------------------------------------------------------------------------------------
补充于2016.9.20
今天再次遇到由于属性表问题而打不开.sln文件的事情,重新回顾了之前的思路,感觉上面写的有一些啰嗦。
上面写了那么多,关键就在于属性表opencv_3.1.props并没有位于test2项目的文件夹下面,如果添加的属性表存在于项目文件夹下面,无论如何复制test2项目文件夹,都可以直接打开.sln。
其实,关于属性表的路径,是以相对路径的形式,记录在与项目同名的.vcxproj(如:test2.vcxproj)文件里面。由于记录的是相对路径,所以如果添加的属性表不在项目文件夹下面的话,更换项目文件夹的路径之后,依照该相对路径显然已经找不到属性表,所以自然就报错了。
最最简单的办法就是直接打开.vcxproj文件,将里面import该属性表的语句去掉,然后就能够打开.sln文件了。
具体参考链接:http://blog.csdn.net/jenny_84/article/details/44673933
当然,要成功编译,还得重新添加属性表。
相关文章推荐
- 【问题】VS2010 VS2012 VS2013 安装之后提示 "无法打开文件 kernel32.lib" 解决方案
- 用VS2013打开之后的解决方案,用VS2010不能打开了
- 修改JFileChooser对话框风格,设置打开对话框的默认文件名,获取改变路径之后的文件保存路径
- VS2013崩溃,无法打开项目的解决方案
- VS2013下使用OpenCV2.4.9打开摄像头并且显示
- vs2013怎么打开vs2010的解决方案
- 使用属性表:VS2013上配置OpenCV
- vs 2013打开vs 2008解决方案问题解决
- opencv2.4.8 vs2013配置属性表
- VS2013显示卡顿,需要最小化后重新打开解决方案等视图才能刷新
- 如何在 VS2010 中打开 VS2013 下的解决方案
- VS2013 / MFC + OpenCV 2.4.9打开图片
- 重装VS2013之后加载opencv项目失败
- vs2013打开 2010项目时: 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
- 关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯
- 使用vs2013打开VS2015的工程文件的解决方案(适用于大多数vs低版本打开高版本)
- VS2013崩溃,无法打开项目的解决方案
- VS2013下各种错误以及解决方案 (动态更新)
- OpenCV+VS2013 属性表配置
- VS2013崩溃,无法打开项目的解决方案