对于一些已经解决的问题,本博客不再讨论。只将本人遇到的问题做简单的说明。

一、VS 2013编译64位版本QT 4.8.6

QT项目官网中,对于QT4,其只提供了windows X86的版本,并且支持VS2010及以下版本。

如果我们的开发环境是VS2010以上版本,使用QT4.8.6-VS2010库来进行开发的话,将会在编译的时候提示缺少msvcpxxx.dll等一系列缺少dll文件的错误,即使我们下载好了MS VC runtime。(以开发环境为VS2013,并使用QT4.8.6-VS2010库来进行开发为例,将会在编译的时候提示缺少msvcp100.dll等一系列缺少dll文件的错误,即使在我们下载并安装好Microsoft Visual C++ 2010 Redistributable Package(x64或x86或SP1 x64或 SP1 x86)之后,可能依然会有报缺少msvcp100.dll等一系列dll的错误)。这时候,就需要对qt源码进行编译了。具体步骤与方法见链接:

vs2013 编译 x64 qt4.8.6  http://blog.csdn.net/zhuyingqingfen/article/details/48002223

这个链接所对用的博客中,作者修改了3个文件中共5处地方,有CSDN积分的下载patch文件照着作者的提示操作,没有积分的,依照图片找到这3个文件进行5处修改即可。

编译完成之后,添加相应的环境变量,参考[QT] QT4环境变量配置,适合初学者

二、Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE) (found version "4.8.6")

在很多时候需要利用cmake工具来实现项目的跨平台性,在使用的过程中,本人遇到了这样的问题:

  1. CMake Error at D:/CMake/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake: (message):
  2. Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE
  3. QT_UIC_EXECUTABLE) (found version "4.8.6")

也就是说cmake工具找到了qt,但是没找到moc,uic和rcc。本人尝试重启计算机,并期待是因为新增的环境变量没有生效导致的。但结果日然如此。

解决办法如下:

找到报错对应的cmakelists.txt,并找到find_package(Qt4 REQUIRED )这条语句。

如本人遇到问题的文件内容如下:

  1. ADD_SUBDIRECTORY(SfM)
  2. ADD_SUBDIRECTORY(Localization)
  3. #ADD_SUBDIRECTORY(opencv)
  4.  
  5. IF (OpenMVG_BUILD_OPENGL_EXAMPLES)
  6. ADD_SUBDIRECTORY(SfMViewer)
  7. ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES)
  8.  
  9. ADD_SUBDIRECTORY(colorHarmonize)
  10.  
  11. find_package(Qt4 REQUIRED )
  12.  
  13. if (QT_FOUND)
  14. ADD_SUBDIRECTORY(ui)
  15. endif (QT_FOUND)

使用set命令手动指定moc,uic,rcc文件的路径。修改后的文件内容如下:

  1. ADD_SUBDIRECTORY(SfM)
  2. ADD_SUBDIRECTORY(Localization)
  3. #ADD_SUBDIRECTORY(opencv)
  4.  
  5. IF (OpenMVG_BUILD_OPENGL_EXAMPLES)
  6. ADD_SUBDIRECTORY(SfMViewer)
  7. ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES)
  8.  
  9. ADD_SUBDIRECTORY(colorHarmonize)
  10.  
  11. set(QT_MOC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\moc.exe)
  12. set(QT_RCC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\RCC.exe)
  13. set(QT_UIC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\Uic.exe)
  14.  
  15. find_package(Qt4 REQUIRED )
  16.  
  17. if (QT_FOUND)
  18. ADD_SUBDIRECTORY(ui)
  19. endif (QT_FOUND)

至此,问题得以解决。

VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4的更多相关文章

  1. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  2. 使用MSYS2编译64位gvim

    1. 下载安装MSYS2 在https://msys2.github.io/下载MSYS2,推荐下载x86-64版,此版本内置了MinGW32与MinGW64 安装后首先更新MSYS2系统,顺序执行下 ...

  3. 在SSIS 的 64 位版本中不支持 Excel 连接管理器

    Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...

  4. 介绍 32 位和 64 位版本的 Microsoft Office 2010

    在使用 64 位版本的 Office 2010 运行现有解决方案时存在两个基本问题: Office 2010 中的本机 64 位进程无法加载 32 位二进制文件.在使用现有 Microsoft Act ...

  5. 使用visual c++ 2005编译64位可执行文件

    最近需要将一个32位的程序移植到64位上,由于原来是使用vs2003写的,vs2003本身并不支持编译64位系统上,只能升级到vs2005以上版本.个人还是比较喜欢vs2005,对c++来说,vs20 ...

  6. 64位版本为什么叫amd64,而不是intel64

    64位版本为什么叫amd64,而不是intel64? 首先了解下常见的几个架构: X86是一个指令集,是刚有个人电脑时候的什么8086,286,386的那个兼容的指令集.   “x86-64”,有时会 ...

  7. 使用VS2015 编译 64位的boost库

    别人写的编译参考: 目标:使用VS2015 编译 64位的boost库. 一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验 ...

  8. windows 下编译64位ffmpeg

    window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位F ...

  9. Windows下编译64位GSL

    GSL (GNU Scientific Library, http://www.gnu.org/software/gsl/)官方并没有提供编译好的Windows版本.首先要保证Windows是64位的 ...

随机推荐

  1. 2 django系列之django分页与templatetags

    preface 当页面出现的条目多的时候,我们就需要使用分页功能了.Django作为一个知名的web框架,自然也提供了分页功能,下面说说它. Python-shell 练练手 在python下入手 先 ...

  2. HDU 4081Qin Shi Huang's National Road System(次小生成树)

    题目大意: 有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点.秦始皇希望这所有n-1条路长度之和最短.然后徐福突然有冒出来,说是他有魔法,可以不用人力.财力就变 ...

  3. oracle临时表空间操作

    1.查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 file_siz ...

  4. 第一章 --- 关于Javascript 设计模式 之 单例模式

    首先我们对单例模式先进行理论上的讲解,接下来,我们再通过具体的代码示例,来讲解,这个单例模式的使用场景和这种模式的优缺点 (这个系列的所有关于设计模式的都是面向Javascript) 一.理论定义: ...

  5. 2.0、Hibernate框架的简单搭建

    一.Hibernate:是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句 ...

  6. 用C#创建Windows服务(Windows Services)

    用C#创建Windows服务(Windows Services) 学习:  第一步:创建服务框架 创建一个新的 Windows 服务项目,可以从Visual C# 工程中选取 Windows 服务(W ...

  7. [从产品角度学EXCEL 02]-EXCEL里的树形结构

    这是<从产品角度学EXCEL>系列第三篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布 ...

  8. JAVA过滤器

    对于get请求和post请求全局过滤: 自己创建一个类,实现HttpServletRequestWrapper接口 package com.dh.deno; import java.io.Buffer ...

  9. ASP.NET 显示项目之外的图片

    1.<asp:Image>标签的使用Loginer.images是图片的路径 this.images.ImageUrl = "showImg.aspx?imgFile=" ...

  10. python 解压 压缩包

    转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar  .tgz .zip .rar ...