VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4
对于一些已经解决的问题,本博客不再讨论。只将本人遇到的问题做简单的说明。
一、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工具来实现项目的跨平台性,在使用的过程中,本人遇到了这样的问题:
CMake Error at D:/CMake/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake: (message):
Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE
QT_UIC_EXECUTABLE) (found version "4.8.6")
也就是说cmake工具找到了qt,但是没找到moc,uic和rcc。本人尝试重启计算机,并期待是因为新增的环境变量没有生效导致的。但结果日然如此。
解决办法如下:
找到报错对应的cmakelists.txt,并找到find_package(Qt4 REQUIRED )这条语句。
如本人遇到问题的文件内容如下:
ADD_SUBDIRECTORY(SfM)
ADD_SUBDIRECTORY(Localization)
#ADD_SUBDIRECTORY(opencv) IF (OpenMVG_BUILD_OPENGL_EXAMPLES)
ADD_SUBDIRECTORY(SfMViewer)
ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES) ADD_SUBDIRECTORY(colorHarmonize) find_package(Qt4 REQUIRED ) if (QT_FOUND)
ADD_SUBDIRECTORY(ui)
endif (QT_FOUND)
使用set命令手动指定moc,uic,rcc文件的路径。修改后的文件内容如下:
ADD_SUBDIRECTORY(SfM)
ADD_SUBDIRECTORY(Localization)
#ADD_SUBDIRECTORY(opencv) IF (OpenMVG_BUILD_OPENGL_EXAMPLES)
ADD_SUBDIRECTORY(SfMViewer)
ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES) ADD_SUBDIRECTORY(colorHarmonize) set(QT_MOC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\moc.exe)
set(QT_RCC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\RCC.exe)
set(QT_UIC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.\\bin\\Uic.exe) find_package(Qt4 REQUIRED ) if (QT_FOUND)
ADD_SUBDIRECTORY(ui)
endif (QT_FOUND)
至此,问题得以解决。
VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4的更多相关文章
- Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)
对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...
- 使用MSYS2编译64位gvim
1. 下载安装MSYS2 在https://msys2.github.io/下载MSYS2,推荐下载x86-64版,此版本内置了MinGW32与MinGW64 安装后首先更新MSYS2系统,顺序执行下 ...
- 在SSIS 的 64 位版本中不支持 Excel 连接管理器
Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...
- 介绍 32 位和 64 位版本的 Microsoft Office 2010
在使用 64 位版本的 Office 2010 运行现有解决方案时存在两个基本问题: Office 2010 中的本机 64 位进程无法加载 32 位二进制文件.在使用现有 Microsoft Act ...
- 使用visual c++ 2005编译64位可执行文件
最近需要将一个32位的程序移植到64位上,由于原来是使用vs2003写的,vs2003本身并不支持编译64位系统上,只能升级到vs2005以上版本.个人还是比较喜欢vs2005,对c++来说,vs20 ...
- 64位版本为什么叫amd64,而不是intel64
64位版本为什么叫amd64,而不是intel64? 首先了解下常见的几个架构: X86是一个指令集,是刚有个人电脑时候的什么8086,286,386的那个兼容的指令集. “x86-64”,有时会 ...
- 使用VS2015 编译 64位的boost库
别人写的编译参考: 目标:使用VS2015 编译 64位的boost库. 一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验 ...
- windows 下编译64位ffmpeg
window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位F ...
- Windows下编译64位GSL
GSL (GNU Scientific Library, http://www.gnu.org/software/gsl/)官方并没有提供编译好的Windows版本.首先要保证Windows是64位的 ...
随机推荐
- OOP,WEB开发实用小技巧
偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...
- linux命令汇总
GPU使用率 使用率查看,GPU-Util $ nvidia-smi 实时查看 $ watch [options] command 最常用的参数是 -n, 后面指定是每多少秒来执行一次命令. 监视显存 ...
- Linux下oracle数据库启动和关闭操作
第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...
- Oracle to_date()函数的用法
Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...
- JS提交对象数组到服务端的方法总结(C#实例)
*转载请注明出处: 作者:willingtolove: 本文链接:http://www.cnblogs.com/willingtolove/p/4741549.html 正文: 1. 方法一:利用aj ...
- 当前Windows群集心跳阀值设置
一.内容描述: WINDOWS群集之间通过心跳检测(HeartBeat)各个节点是否正常在线,微软称此检测为lookalive,检测通过UDP数据包中封装的RPC信息进行传送.默认情况下为每秒检测一次 ...
- JSP内置对象之request对象【学习笔记】
request对象是JSP中重要的对象,每个request对象封装着一次用户的请求,并且所有的请求参数都被封装在request对象中,因此request对象是获取请求参数的重要途径. 一.获取请求头与 ...
- html 杂记
<link rel="******" href=“****.css” type=“text/css” media=“screen” />css样式外部链接 加个斜杠 ...
- MyBatis中关于别名typeAliases的设置
第一种:通过在配置文件中typeAlias节点设置type的方式 <?xml version="1.0" encoding="UTF-8" ?> & ...
- 让VS2010支持Windows2000
2015-10-20 14:21 375人阅读 评论(0) 收藏 举报 分类: 学习笔记(33) 技术心得(1) 用Visual Studio 2010编译的程序无法在Windows 200 ...