首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在装有QProcess的Windows64位操作系统上使用Qt 32位工具包编译Qt程序

我想在装有QProcess的Windows64位操作系统上用Qt32位工具包编译我的Qt程序。

我使用64位工具包进行编译,使用:C:/Qt/5.15.1/msvc2019_64/bin/qmake.exe,然后使用C:/Qt/Tools/QtCreator/bin/jom.exe,它工作得非常好。

我尝试用32位编译的事情:

代码语言:javascript
运行
AI代码解释
复制
QProcess envBuilder;

envBuilder.start("\"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat\"", QStringList());
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

envBuilder.start("\"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat\"", {"x86"});
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

envBuilder.start("C:/Qt/5.15.1/msvc2019/bin/qtenv2.bat", QStringList());
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

envBuilder.start("C:/Qt/5.15.1/msvc2019/bin/qmake.exe", {"MyProject.pro", "-o", "Makefile", "-spec", "win32-msvc", "\"CONFIG+=qtquickcompiler\""});
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

envBuilder.start("C:/Qt/Tools/QtCreator/bin/jom.exe", {"-f", "Makefile", "/D", "release"});
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

编译正确开始,但在链接它时输出:

代码语言:javascript
运行
AI代码解释
复制
Qt5Charts.lib(Qt5Charts.dll) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-29 10:42:52

感谢所有的评论,最终起作用的是:

代码语言:javascript
运行
AI代码解释
复制
QProcess envBuilder;

envBuilder.start("\"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat\" && C:/Qt/5.15.1/msvc2019/bin/qtenv2.bat && C:/Qt/5.15.1/msvc2019/bin/qmake.exe", {"MyProject.pro", "-o", "Makefile", "-spec", "win32-msvc", "\"CONFIG+=qtquickcompiler\""});
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();

envBuilder.start("\"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat\" && C:/Qt/Tools/QtCreator/bin/jom.exe", {"-f", "Makefile", "/D", "release"});
envBuilder.waitForFinished();
qDebug() << envBuilder.exitCode();
qDebug() << envBuilder.readAllStandardOutput();
qDebug() << envBuilder.readAllStandardError();
票数 0
EN

Stack Overflow用户

发布于 2020-10-28 15:25:09

您的错误是因为您使用64位库编译32位目标(反之亦然)。

一方面,仔细选择您使用的vcvarsXXXX.bat版本。

我说的是这条线

代码语言:javascript
运行
AI代码解释
复制
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/vcvars32.bat

您会发现此bat文件有许多不同目标的变体。

另一方面,您可能还想验证compilation kits中的路径是否没有混合路径(例如:对32位工具包使用64位路径,反之亦然)

你可能还想检查一下here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64571474

复制
相关文章
编译Qt
Windows 下自己准备自己想要的编译器。编译自己想要的 Qt 版本 最近 5.6 出来了,有好多新的变化,第一时间准备尝鲜。 我自己的是 MSVC2015 Qt5.6
Harper
2021/07/27
7680
qt编译程序无法在其他电脑上运行
报错原因:缺少相关配置文件 1打开本机电脑的qt自带控制台 选择你编译的那个打开 在这里输入你的编译后的exe文件位置 然后输入cwindeployqt+程序名称 就会发
炒香菇的书呆子
2020/08/18
1.2K0
qt编译程序无法在其他电脑上运行
使用OpenCV在Qt控件上播放视频
https://gitee.com/fensnote/demo_code/tree/master/qtCode/opencv_video
fensnote
2021/05/31
3K0
使用OpenCV在Qt控件上播放视频
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 )
首先要安装 Qt 开发环境 , 参考 【Qt】Qt 开发环境安装 ( Qt 版本 5.14.2 | Qt 下载 | Qt 安装 ) 博客 ;
韩曙亮
2023/03/29
3.6K0
【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 )
qt静态编译
qt静态编译出现以下问题怎么解决呢? D:\qt-5.9.0\qtbase\src\corelib\global\qlibraryinfo.cpp: fatal error C1853: “qmake_pch.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.EXE"”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “cd”: 返回代码“0x2” Stop. NMAKE : fatal error U1077: “cd”: 返回代码“0x2” Stop.
用户3519280
2023/07/06
4660
vs2010编译64位qt5.5
下载qt5.5源代码 [http://download.qt.io/archive/qt/5.5/5.5.0/single/]
用户3519280
2023/07/06
4710
Qt5.8.0使用静态编译
下载链接: http://pan.baidu.com/s/1mhVe75e 密码: zdxh
繁花云
2018/07/31
1.6K0
qt交叉编译环境搭建_qt socket
简单服务发现协议(SSDP,Simple Service Discovery Protocol)是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。 简单服务发现协议提供了在局部网络里面发现设备的机制。控制点(也就是接受服务的客户端)可以通过使用简单服务发现协议,根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。设备(也就是提供服务的服务器端)也可以通过使用简单服务发现协议,向自己所在的局部网络里面的控制点宣告它的存在。
全栈程序员站长
2022/11/07
1.2K0
为Qt程序获取编译日期时间
利用__DATE__与__TIME__编译宏特性为Qt程序添加编译日期时间。 static const QDateTime buildDateTime() { QString dateTime; dateTime += __DATE__; dateTime += __TIME__; return QLocale(QLocale::English).toDateTime(dateTime, "MMM dd yyyyhh:mm:ss"); } 另外,下列代码并不能获取编译日期时
Qt君
2019/08/05
2.8K0
编译QCAD_qt 编译
目前开源的二维CAD有QCAD、LibreCAD等,且LibreCAD可以说是QCAD的分支版本。对比这款开源软件,发现QCAD的功能与操作习惯和AutoCAD更接近。LibreCAD是纯C++开发,而QCAD使用了Qt的Script模块,使用了C++和Javascript脚本两种开发方式。我觉得使用脚本来扩展功能比纯C++开发效率会高点,因为这些开源项目源码都很大,编译比较花时间。如果使用脚本来开发的话,没有编译时间,可以边写脚本边测试,很方便。
全栈程序员站长
2022/09/20
1.6K0
编译QCAD_qt 编译
QT软件开发: 获取媒体详细信息(视频/音频)
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 编译器: MinGW32 FFMPEG: 4.2.2 二、软件效果 三、核心代码 3.1 widget.cpp #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); ui->
DS小龙哥
2022/01/12
1.3K0
QT软件开发: 获取媒体详细信息(视频/音频)
Qt 5.11.1 静态编译
离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/
我与梦想有个约会
2018/09/19
6.2K0
Qt 5.11.1 静态编译
使用python批量编译Qt工程脚本
主要用于windows平台(msvc编译器)。 部署环境   设置脚本内的build_list变量的值即可。 qmake.exe路径; jom.exe路径; 编译环境变量; 编译项目。 源码 import os import datetime import subprocess build_list = [ { 'qmake': r'C:\Qt\Qt5.12.2\5.12.2\msvc2017_64\bin\qmake.exe', 'qmake_params': r
Qt君
2019/10/23
1K0
浅谈 Qt 静态编译
本文要讲解的是Qt 静态编译,Qt中默认的应该是动态编译,那么本文就浅淡的介绍一下静态编译,先来看内容。
用户3519280
2023/07/06
1.2K0
在Jetson TX开发套件上使用QT Creator
在视频中,Jetsonhacks演示了如何在NVIDIA Jetson TX开发工具包中使用QTCreator IDE来cmake一个应用,他用librealsense 2做例子,这是一个为Intel RealSense D400相机开发的SDK。
GPUS Lady
2018/08/01
8300
在Jetson TX开发套件上使用QT Creator
Qt 5.11.1 静态编译
离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/
我与梦想有个约会
2020/01/04
2.2K0
Windows下QT编译和使用MQTT
前几篇文章写了MQTT服务器的搭建以及连接测试,本文是介绍用 QT来进行MQTT服务器的连接,由于QT没有现成的库,需要从QT 官网自己下载 MQTT 源码并编译。
嵌入式小屋
2022/04/27
3.7K0
Windows下QT编译和使用MQTT
qt source 源码编译
地址:https://download.qt.io/archive/qt/ 源码使用tag版本,6.0以上版本有cmakelist.txt可以直接cmake编译(但差的三方库比较多),6.0以下的版本,cmakelist.txt在qtbase文件夹中,使用
sofu456
2022/03/07
1.2K0
qt source 源码编译
Qt程序打包
这样qt就会自动把依赖拷贝出来,然后我们安装软件Enigma Virtual Box
繁花云
2018/07/31
1.4K0
qt tabwidget样式_qt tablewidget使用
ui.tabWidget->setStyleSheet( “QTabWidget{background: #f0f0f0;}” “QTabBar::tab{background:transparent;color:black;font:22px; min-width:103.8px;min-height:49px;}” “QTabBar::tab:first:selected{border-image:url(:/png/images/chat_state.png);}” “QTabBar::tab:first{border-image:url(:/png/images/chat.png);}” “QTabBar::tab:middle:selected{border-image:url(:/png/images/message_state.png);}” “QTabBar::tab:middle{border-image:url(:/png/images/message.png);}” “QTabBar::tab:last:selected{border-image:url(:/png/images/members_state.png);}” “QTabBar::tab:last{border-image:url(:/png/images/members.png);}” );
全栈程序员站长
2022/11/09
9360

相似问题

在操作系统上独立运行Qt QProcess

12

在64位Linux操作系统上编译32位Qt应用程序

149

正确使用Qt QProcess

38

QProcess异常QT

12

QT创建器QProcess

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档