Qt with VC 6.0

本文详细介绍如何在VC6.0环境中安装和配置Qt开发工具,包括Qt SDK的下载、编译过程及环境变量的设置,并提供了一个简单的Qt程序示例。

By Dk Zhang

090807

一.Qt安装与编译

1.下载安装

http://www.qtsoftware.com/downloads/sdk-windows-cpp下载Qt SDK for Windows它包括Qt librariesQt Creator IDEQt development tools

现在的版本是:4.5.2

下载得到qt-sdk-win-opensource-2009.03.1exe,安装!

安装完成后,就可以用Qt Creator编写自己的Qt程序了。

 

二.在VC6.0中使用Qt

为了能够在VC6.0版本中使用Qt,需要做进一步的工作,接着上面的步骤写

2.编译

安装完成后,需要编译(Qt这点比较懒):

Windows 命令行进入安装目录C:/Qt/2009.03/qt

1)运行configuire.exe --help完成配置生成make文件

2nmake

每一步都需要漫长的等待当然也有好心人把编译好的版本放到网上。

 

注意:

A.编译的前提是安装VC6.0,并且保证nmake.exe在正确的路径中,测试方法:

命令行输入nmake /?

输出

Microsoft (R) Program Maintenance Utility Version 6.00.8168.0

Copyright (C) Microsoft Corp1988-1998.  All rights reserved.

Usage:  NMAKE @commandfile

        NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [targets]

Options:

如果不在,切换到路径C:/Program Files/Microsoft Visual Studio/VC98/Bin(VC路径),运行vcvars32.bat ,设置vc6.0编译文件的路径。

B.编译的目的是生成VC编译和运行需要的libdll文件

 

3. 设置环境变量

PATH = C:/Qt/2009.03/qt/bin

QMAKESPEC = win32-msvc

然后重启一下命令行窗口,检查路径设置的是否正确:

C:/>qmake -v

QMake version 2.01a

Using Qt version 4.5.2 in C:/Qt/2009.03/qt/lib

 

C:/> echo %QMAKESPEC%

win32-msvc

 

至此,QTVC6.0OK了。

 

4.实用

下面用一个小程序测试一下,创建文件名为hello.cpp,输入如下代码:

#include <QApplication>

#include <QLabel>

int main(int argc, char **argv) {

  QApplication app(argc, argv);

  QLabel *label = new QLabel("Hello Qt!");

  label->show();

 return app.exec();

}

 

然后命令行:

> qmake -project -o hello.pro 生成pro文件

> qmake  生成makefile

> nmake  生成 可执行文件

 

或者利用

> qmake -project -o hello.pro 生成pro文件

> qmake –tp vc –o hello.dsp生成VC工程文件

就可以用VC6.0打开工程进行接下来的操作

 

. 错误处理

Qt编程中经常会出现:

finddialog.obj : error LNK2001: unresolved external symbol
"public:~virtual int __thiscall MyClass::qt_metacall(enum QMetaObject::Call,int,void * *)"

 

Implementation of ImageViewerQt with Qt4》中解释:

If this ever happens to you, run qmake again to update the makefile, then rebuild the application.

 

. 推荐网站

http://www.insideqt.com

http://www.qtcn.org/bbs/index.php

http://wiki.qtcentre.org/

http://sites.google.com/site/chaishushan/qt

 

<think>我们正在解决Qt6缺少MSVC2022 32位构建选项的问题。根据用户提供的引用,虽然引用中提到了Qt5.12.6配置MSVC2015 32位,以及Qt5.5.1配置MSVC2010,但用户的问题是关于Qt6和MSVC2022 32位构建选项的缺失。因此,我们需要从Qt6对MSVC2022的支持情况出发。 根据Qt的官方文档,从Qt6.0开始,Qt官方主要提供64位的预构建二进制包。对于32位的支持,通常需要用户自己从源代码构建。因此,解决这个问题的核心步骤是:下载Qt6的源代码,然后使用MSVC2022的工具链构建32位版本。 以下是具体的步骤: 1. **准备环境**: - 安装Visual Studio 2022,并确保安装了“使用C++的桌面开发”工作负载,包括32位编译器。 - 安装Python(Qt6构建需要)、Perl(可能不需要,但以防万一)以及CMake(Qt6使用CMake构建)。 - 安装Git(用于获取源代码)。 2. **获取源代码**: - 从Qt的官方仓库克隆源代码,或者下载对应版本的源代码包。例如,要构建Qt6.5.1,可以下载对应的源代码。 3. **配置构建**: - 打开Visual Studio 2022的开发者命令行工具(注意选择32位环境,如“x86 Native Tools Command Prompt for VS2022”)。 - 进入Qt源代码目录,创建一个构建目录,并进入该目录。 - 运行配置命令,指定安装路径和构建选项。重点是指定目标平台为x86(32位)。 4. **构建和安装**: - 运行构建命令(如`cmake --build .`)和安装命令。 5. **在Qt Creator中配置**: - 构建完成后,在Qt Creator中添加这个自定义构建的Qt版本,并配置对应的编译器(MSVC2022 32位)。 然而,用户提到的是在Qt Creator中没有MSVC2022 32位的构建选项,这可能是因为在安装Qt时没有选择32位的预构建包,或者Qt官方未提供该预构建包。因此,我们需要自行构建。 具体步骤: 步骤1:安装必要的软件 - 确保已安装Visual Studio 2022,并勾选“Desktop development with C++”工作负载,同时确保在右侧的“Individual components”中勾选了“MSVC v143 - VS2022 C++ x64/x86 build tools”以及Windows 10 SDK(或Windows 11 SDK)等。 步骤2:获取Qt源代码 - 访问Qt的下载页面(https://download.qt.io/),选择所需的Qt6版本(如6.5.1)的源代码(.zip或.tar.xz格式),或者使用Git克隆: ``` git clone https://code.qt.io/qt/qt5.git cd qt5 git checkout v6.5.1 ``` - 注意:Qt6的模块化比Qt5更好,但可能需要初始化子模块。可以使用`perl init-repository`(如果使用Git)来初始化子模块。 步骤3:配置构建环境 - 打开“x86 Native Tools Command Prompt for VS2022”(用于32位构建)。 - 在命令行中,进入Qt源代码目录,并创建一个构建目录,然后进入: ``` mkdir build cd build ``` - 执行配置命令。以下是一个示例配置命令: ``` ..\configure.bat -prefix "D:\Qt\6.5.1\msvc2022_x86" -platform win32-msvc -opengl desktop -no-webengine -opensource -confirm-license ``` 说明: - `-prefix`:指定安装目录。 - `-platform win32-msvc`:指定使用32位的MSVC编译器。 - `-opengl desktop`:指定使用桌面OpenGL。 - `-no-webengine`:由于构建QtWebEngine比较复杂,这里先跳过,如果需要可以单独构建。 - `-opensource`:构建开源版本。 - `-confirm-license`:自动确认许可协议。 步骤4:构建和安装 - 在构建目录中,执行: ``` cmake --build . --parallel cmake --install . ``` 这将使用多核编译,并将构建好的Qt安装到`-prefix`指定的目录。 步骤5:在Qt Creator中添加Qt版本 - 打开Qt Creator,进入“工具”->“选项”->“Kits”->“Qt Versions”,点击“添加”,选择安装目录下的`bin\qmake.exe`。 - 然后在“Kits”选项卡中,添加一个Kit,选择这个Qt版本和对应的MSVC2022 32位编译器(如果编译器没有自动出现,可能需要先添加编译器,通常Qt Creator会自动检测到MSVC2022的编译器)。 可能遇到的问题及解决方案: 1. **构建过程中出现错误**:可能由于环境问题或依赖缺失。确保安装了所有必要的依赖,如Python、CMake等,并且版本符合要求(参考Qt官方文档)。另外,构建QtWebEngine需要额外的步骤,如果不需要,建议禁用。 2. **构建时间较长**:耐心等待,或者使用`--parallel`选项利用多核加速。 3. **Qt Creator中找不到32位编译器**:在“选项”->“Kits”->“编译器”中,检查是否有MSVC2022的32位编译器(通常名称会包含“x86”)。如果没有,可以手动添加,路径通常在Visual Studio的安装目录下,如`cl.exe`的路径(例如:`C:\Program Files (下同)\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx86\x86\cl.exe`),但通常Qt Creator会自动检测。 4. **许可证问题**:如果使用开源版,确保在配置时添加`-opensource -confirm-license`。 由于自行构建Qt是一个复杂且耗时的过程,用户需要谨慎操作。如果用户不需要32位版本,也可以考虑使用64位版本进行开发,或者使用其他编译器(如MinGW 32位)来构建32位应用。 最后,如果用户不想自己构建,可以查看是否有第三方提供的预构建包,但请注意安全性和兼容性。 根据上述步骤,用户可以尝试构建32位的Qt6 for MSVC2022。 相关问题: 1. 如何避免在构建Qt源码时出现许可证问题? 2. 自行构建Qt6时如何减少构建时间? 3. 除了自行构建,还有哪些方法可以在Qt6中使用32位MSVC2022编译器? </think> ### 解决Qt6缺少MSVC2022 32位构建选项问题 #### 原因分析 Qt6官方默认不提供32位MSVC2022的预编译包[^1]。虽然Qt5.12.6支持MSVC2015 32位,但Qt6对MSVC2022的32位支持需要手动编译源码[^3]。 #### 解决方案(源码编译) 1. **安装必要工具** - Visual Studio 2022:安装时勾选 **"Desktop development with C++"** 和 **"MSVC v143 - VS2022 C++ x86/x64 build tools"** - 安装CMake(≥3.21)和Python(≥3.6) - 安装Git(用于获取源码) 2. **获取Qt6源码** ```bash git clone https://code.qt.io/qt/qt5.git cd qt5 git checkout v6.5.1 # 切换到稳定版本 ``` 3. **配置32位编译环境** 打开 **VS2022的x86 Native Tools命令行**(确保环境变量指向32位编译器): ```bash configure.bat -prefix "D:\Qt\6.5.1\msvc2022_x86" \ -platform win32-msvc \ -opengl desktop \ -opensource -confirm-license ``` - `-prefix`:指定安装路径 - `-platform win32-msvc`:强制32位编译 - `-opensource`:使用开源版本 4. **编译与安装** ```bash cmake --build . --parallel # 多核编译 cmake --install . ``` 5. **Qt Creator配置** 1. 添加新Qt版本:`工具 > 选项 > Kits > Qt版本 > 添加` 2. 选择编译后的qmake路径:`D:\Qt\6.5.1\msvc2022_x86\bin\qmake.exe` 3. 新建Kit:选择此Qt版本+MSVC2022 32位编译器 #### 常见问题解决 - **'rc' 命令错误**:将VS2022的`rc.exe`路径(如`C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx86\x86`)加入系统PATH[^1] - **QT License check failed**:添加`-confirm-license`参数[^1] - **OpenGL上下文问题**:在`main.cpp`中添加: ```cpp QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); // [^2] ``` #### 替代方案 1. **使用MinGW 32位**:Qt官方提供MinGW 32位预编译包 2. **降级到Qt5**:若项目允许,使用Qt5.15+MSVC2019 32位(官方提供预编译包) > **注意**:源码编译需2-5小时,建议关闭杀毒软件并保持网络稳定。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值