使用VS2010开发Qt程序的一点经验(转载) 导读 The system cannot find the path specified Qt 4.x port to Qt 5.x 切换工程使用的Qt库 在VS的Solution Explorer视图中建立文件夹 参考

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

转载:http://www.cnblogs.com/csuftzzk/p/VS_Qt_Experience.html

     相比于Qt Creator,我更喜欢用VS2010来进行开发。虽然启动时间相对较慢,但是VS下强大的快捷键和丰富的插件,以及使用多年的经验,都让我觉得在开发过程中得心应手。其中最重要的一点是,有时候Qt Creator报的错误莫名其妙。要根据提示找到错误根源显得无从下手。而VS的一般错误说明都比较人性化,即便在某些时候无从解决,也可以通过搜索引擎大致定位出错误的源头。下面是在调试网上的一些源代码的时候,积累下来的一点经验,记下来一来备忘,二来也可供后来人参考。

The system cannot find the path specified

      当我从用VS2010打开从网上下载下来的源代码工程进行编译的时候,输出栏中出现了一系列如下的错误提示:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     我的开发环境为:VS2010 32位旗舰版,Windows 7 64位,Qt库版本为5.2.1。第一次遇到这样的问题,还真的莫名其妙。于是上网搜了搜,发现了一些苗头。该工程原本是使用Qt 4.x进行开发的,但是本人使用的是Qt 5.2.1。因此我想应该是Qt库的版本不同而造成的。后来在Qt开发者社区中发现了一个解决方案,具体解决过程如下:

找到工程目录下面的.vcxproj文件,打开并搜索关键字:QtVersion

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     替换为如下内容:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     这时再回到VS,会发现如下提示:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

      点击重新加载之后,如果直接开始编译工程会得到如下的错误提示:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     很显然,我们需要配置下该工程的Qt库版本。因为我们在.vcxproj文件中改动了工程使用的Qt库版本,于是这里需要在Qt-VS-Addon插件中进行配置,选择Qt Project Settings弹出如下对话框,选择当前可用的Qt库版本(我的版本名称为msvc2010),然后如右侧图所示勾选必须的模块:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     点击OK,然后上述错误就可以被消除了。对于基于其他Qt版本的工程,也可以如上进行移植。移植过程中会需要修改头文件,毕竟Qt 4.x和Qt 5.x相比差异性较大,这也是我在阅读人家源代码的时候最大的烦恼。往往改着改着就不想改了,因为牵涉的版本问题(包括Qt和VS,甚至第三方库)太多太折磨人了。

Qt 4.x port to Qt 5.x

     上面说过,如果要移植基于Qt 4.x的工程到Qt 5.x,要做的事情还真比较多。这一节就讲讲Qt库的lib文件。以上例说明,当上述错误修改好后,编译工作并不能顺利完成,在我的机器上报出来如下的错误:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

      前面编译工作都没报错,显然是连接阶段出错了。看上面这名字,似乎是QtCored.lib这个文件的过度版本无法找到。于是,执行操作:“点击项目名称->右键选择项目属性->配置属性->链接器->输入->附加依赖项”,可以看到:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

      在Qt的安装目录下(如:C:QtQt5.2.15.2.1msvc2010_opengllib),我并没找到以上这些lib文件,于是尝试用上述目录中对应的lib文件进行替换:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

     重新编译工程,此时编译过程顺利结束,生成了期待中的可执行程序。这仅仅是lib文件的设置,源代码的修改其实是另一大难题。尤其是QtGui在Qt 5.x中已经消失,因此需要大面积修改文件内容。

切换工程使用的Qt库

      当机器中同时安装了多个版本的Qt库的时候,在VS也可以自如的指定使用那个版本进行编译。当然,仅仅限于大版本相同的情况下,因为这时需要修改源码的地方较小,甚至不需要修改就可以完成编译工作。如果大版本不同的话,修改源码是免不了的一件事。

      如何添加不同的Qt库版本到VS中来呢?这个工作就交由qt-vs-addin来完成吧。 在菜单栏中选中Qt options,点击Add按钮并选择好Qt库的安装路径即可,版本名可自定义。在Qt Default Settings页面中,还可以指定一些编译时的默认设置。

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

值得注意的是,在VS中首次建立好Qt工程之后,如果后续又添加了不同Qt库版本,并尝试用新的Qt库来编译工程,那么一定要将新的Qt库的名称保持与建立工程时选择的Qt库名称保持一致,否则将会出现无法理解的错误,或许摸索一整天都不会有结果。当然,或许修改.vcxproj文件也许有用。

在VS的Solution Explorer视图中建立文件夹

     在VS中如何直接新建文件夹,并且保持和文件系统同步呢?以前的做法是,先在工程目录下建立一个新的文件夹,然后到VS工程视图中引入进来。虽然可以用,未免显得太过麻烦。如下是一个经过实践的办法:

     在Solution Explorer视图中点击工程名称,可以发现上面有个小图标出现了(提示信息为:显示所有文件),而点击解决方案名称的时候,这个图标又消失了。点击一下这个图标,顿时可以发现当前工程目录在磁盘上的所有文件都出现了,包括编译过程中产生的各种中间文件。显然,这就是我们要的!建立文件夹的步骤如下:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

      选择好文件夹的名称,打开工程所在目录,对应的文件夹赫然在目!如下是我用文件夹组织工程的前后状况:

使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考使用VS2010开发Qt程序的一点经验(转载)
导读
The system cannot find the path specified
Qt 4.x port to Qt 5.x
切换工程使用的Qt库
在VS的Solution Explorer视图中建立文件夹
参考

      显然清爽了不少。源代码文件在逻辑上进行了划分,对于清晰的理解整个工程的模块、架构都有莫大的帮助。对于后来的开发者和维护人员都是一种灵魂的解脱...

参考

1. http://qt-project.org/forums/viewthread/24277