用CMAKE同时配置64位和32位两种版本的QT
来源:互联网 发布:青岛干部网络管理学院 编辑:程序博客网 时间:2024/05/21 10:40
用CMAKE同时配置64位和32位两种版本的QT
在笔者的一个项目中,界面模块用到了Qt开源项目,为了支持64和32两种不同版本的发布,我们分别用了不同计算机来开发这两种版本。 每次在32位版本下开发了新功能,然后再合并代码到64位平台下,重新编译64位版本,这样做,不但需要频繁合并代码,费时费力,而要需要占有多余的计算机资源。笔者试验了一个新方法,可以在一台计算机上安装64和32位两种Qt版本, 然后用CMAKE根据不同编译选项找到这两种版本的Qt。方法如下:
1、将编译好的两种Qt 版本拷贝到固定目录下
在笔者的计算机下, 分别是d:/3rdpart/x86/qt 和 d:/3rdpart/x64/qt. 笔者没有找到x64的安装版本,解决方法是在32位安装程序里面,将可执行程序删除,重新在64位环境下编译一次,然后拷贝到指定目录。32位的Qt拷贝到指定目录后, 可以将原来的安装程序卸载。
2、让cmake根据configure 信息找到不同版本的Qt
如果没有安装信息,cmake语句find_package找不到Qt位置。通过查看findQt4的源代码,我们发现cmake会先查看注册表来选择Qt路径,如果没有找到,最后通过环境变量QTDIR来确定qt的安装路径。所以,为了让CMAKE 可以找到我们拷贝到两个指定目录下的Qt.我们必须在CMakeLists.txt中添加如下语句:
IF(CMAKE_CL_64) SET(PLATFORM x64) ELSE(CMAKE_CL_64) SET(PLATFORM x86)ENDIF(CMAKE_CL_64)#3RD PART LIBRARIESset (3RDPART_DIR "d:/3rdPart")
set{ENV{QTDIR} "${3RDPART_DIR}/${PLATFORM}/QT/4.8.1")# call find_packagefind_package(qt4)
3、修改Qt的编译信息
通过以上两个步骤,cmake 已经可以顺利找到Qt的路径, 只是当运行cmake的configure功能时, 它会提示qt 的安装路径不正确,这是因为cmake会调用qmake来核实它的路径信息。 比如说我们在d:/qt/4.8.1下编译了qt的64位代码,然后将它移动到d:/3rdpart/x64下面,qmake并不知道这一点,当cmake调用 qmake -query时, qmaker仍然给出以前的路径,即d:/qt/4.8.1,而非d:/3rdpart/x64/qt/4.81. 这时我们需要做的只是在当前的qt目录下,打开cmd窗口,重新运行qt目录下的configure.exe 程序。
通过试验证明,经以上三个步骤, 我们已经可以成功地在同一台计算机上编译不同版本的QT 界面程序。
(笔者机器的cmake版本为2.8.7. qt版本为4.8.1)
- 用CMAKE同时配置64位和32位两种版本的QT
- 指定eclipse启动时使用的jdk版本(在64位操作系统中同时运行64位eclipse和32位eclipse)
- Windbg 32位版本和64位版本的选择
- Windbg 32位版本和64位版本的选择
- 64位系统下同时使用64位和32位的eclipse
- 如何在64位windows7上同时使用32位和64位的Eclipse
- 【Tools.Eclipse】 64位系统下同时使用64位和32位的eclipse
- Android Studio 2.3.3 32位 win7 cmake的配置
- 在win7 64位下cmake+vs2010编译 PCL1.7.2版本32位库
- 如何让eclipse 32位和64位同时运行
- 让32位Eclipse和64位Eclipse同时在64的Windows7上运行
- 让32位Eclipse和64位Eclipse同时在64的Windows7上运行
- 让32位Eclipse和64位Eclipse同时在64的Windows7上运行
- 让32位Eclipse和64位Eclipse同时在64的Windows7上运行
- STK11 32位和64位版本
- cmake 编译 32/64位
- OpenCV 3.3使用CMake 3.9.2和Visual Studio 2017配置win7 32位系统的开发环境
- 【32位和64位不同的操作系统】环境的配置,如何区分JDK,Tomcat,eclipse的32位与64版本
- Hadoop管理员的十个最佳实践
- VC 在多线程中调用Exce问题
- 潜入蓝翔技校二十天 探究蓝翔黑客真正的奥秘
- iMx把App预先装入系统
- 计算直线的交点数
- 用CMAKE同时配置64位和32位两种版本的QT
- 第一线安莱:打破IaaS的僵局
- MapController类
- Android 增加第三方APK
- sqlserver 与 c# 类型对应
- 嵌入JPG图像资源
- 对现存互联网图片识别网站的研究
- asm 故障组 故障组
- Appium_Java code(1)