【AI时代速通QT】第十节:在 Windows 上配置vs和qmake环境手动编译 Qt 项目

目录

前言

一、准备工作:必要的软件和知识

二、核心挑战:配置正确的编译环境

2.1 激活 Visual Studio 开发环境

2.2 配置 Qt 工具环境

三、实战演练:手动编译 `testqmake` 项目

三、自动化:使用批处理脚本

结论


 🎬 攻城狮7号个人主页

🔥 个人专栏:C++QT跨平台界面编程

⛺️ 君子慎独!

 🌈 大家好,欢迎来访我的博客!
⛳️ 此篇文章主要介绍 在 Windows 上配置vs和qmake环境变量手动编译 Qt 项目
📚 本期文章收录在《C++QT跨平台界面编程》,大家有兴趣可以自行查看!
⛺️ 欢迎各位 ✔️ 点赞 👍 收藏 ⭐留言 📝!

前言

        作为 Qt 开发者,我们习惯了在 Qt Creator 中点击一下绿色箭头,所有复杂的编译、链接工作便在后台自动完成。这种集成开发环境(IDE)的便利性毋庸置疑,但它也像一个“黑盒子”,让我们对底层到底发生了什么知之甚少。

        那么,我们为什么要学习如何在命令行中手动编译 Qt 项目呢?

        (1)自动化构建(CI/CD):当您需要将项目集成到 Jenkins、GitLab CI 等自动化流程中时,命令行是唯一可靠的交互方式。

        (2)深入理解构建系统:掌握手动编译过程,能让您对 Qt 的 `qmake`、编译器的 `cl.exe`、链接器的 `link.exe` 如何协同工作有更深刻的认识。

        (3)精准的错误排查:当遇到复杂的编译或链接错误时,直接在命令行中执行命令,可以获得最直接、最原始的错误信息,帮助您快速定位问题根源。

        本文将以一个简单控制台项目为例,详细阐述在 Windows 环境下,如何配置 Visual Studio 和 Qt 的环境变量,并使用 `qmake` 和 `nmake` (或 `jom`) 从零开始构建一个可执行的 Qt 程序。

一、准备工作:必要的软件和知识

        在开始之前,请确保您的系统中已经安装了以下软件:

(1)Visual Studio:并确保在安装时勾选了“使用 C++ 的桌面开发”工作负载。这将为我们提供必要的编译器(`cl.exe`)、链接器(`link.exe`)和构建工具(`nmake.exe`)。

(2)Qt SDK:请务必下载并安装与您的 Visual Studio 版本相对应的 MSVC 版本(例如,为 VS2019 下载 `msvc2019_64` 版)。

       我们先创建一个文件夹名叫 `testqmake` ,这个项目非常简单,它只包含两个文件:

`testqmake.pro` - 项目配置文件:

SOURCES += main.cpp

CONFIG += console

        这个配置文件告诉 `qmake`:

        * 项目中有一个源文件,名为 `main.cpp`。

        * 这是一个控制台应用程序(而不是 GUI 应用程序)。

`main.cpp` - C++ 源文件:

#include <iostream>


int main()

{

    std::cout << "test for qmake" << std::endl;

    return 0;

}

        这是一个标准的 C++ "Hello World" 程序,为了简化,我们这里不使用任何 Qt 库的特性。

二、核心挑战:配置正确的编译环境

        如果您直接打开一个标准的 Windows 命令提示符(`cmd.exe`),然后尝试运行 `cl` 或 `qmake`,系统会提示“不是内部或外部命令”。这是因为操作系统不知道去哪里找这些可执行文件。为了解决这个问题,我们需要配置两个关键的环境:Visual Studio 的开发环境和 Qt 的工具环境。

2.1 激活 Visual Studio 开发环境

        手动一个个去设置 VS 的 `PATH`, `INCLUDE`, `LIB` 等环境变量是一件极其繁琐且容易出错的事情。幸运的是,微软为我们提供了一个一站式的解决方案:`vcvarsall.bat` 批处理脚本。

        这个脚本会自动检测您的系统和 VS 安装,然后为当前的命令行会话配置好所有必需的环境变量。

        如何使用它?

        (1)方法一(推荐):使用开发者命令提示符

        这是最简单的方法。直接从开始菜单找到并启动“Developer Command Prompt for VS xxxx”(VS xxx 开发人员命令提示符)。这个快捷方式的本质就是在启动 `cmd.exe` 之前,自动为您运行了 `vcvarsall.bat`。

        (2)方法二:手动调用脚本

        如果您必须在标准的 `cmd.exe` 中工作,可以手动调用该脚本。它通常位于您的 Visual Studio 安装目录下,例如:

         `"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"`

        您需要根据自己的 VS 版本和安装路径进行调整。

        一旦环境激活,您可以在命令行中输入 `where cl`,如果系统能返回 `cl.exe` 的路径,则证明 VS 环境已准备就绪。

2.2 配置 Qt 工具环境

        接下来,我们需要让命令行知道 `qmake.exe` 在哪里。这通常通过将 Qt 工具的路径添加到系统的 `PATH` 环境变量中来实现。

        (1)在 Windows 搜索框中输入“环境变量”,并选择“编辑系统环境变量”。

        (2)在弹出的“系统属性”对话框中,点击“环境变量...”。

        (3)在“系统变量”或“用户变量”区域找到 `Path` 变量,点击“编辑”。

        (4)点击“新建”,然后添加您的 Qt `bin` 目录的路径。例如:`C:\Qt\5.15.2\msvc2019_64\bin`。

        (5)(可选但推荐) 同时,我们可以把 `jom.exe` 的路径也加进去。`jom` 是一个可以并行执行任务的 `nmake` 替代品,能显著加快编译速度。它通常位于 Qt Creator 的工具目录中,例如:`C:\Qt\Tools\QtCreator\bin`。

        (6)一路点击“确定”保存设置。

        重要提示:修改完环境变量后,您需要重新打开一个新的命令行窗口,这些更改才会生效。

        配置完成后,在新的命令行窗口中输入 `where qmake` 和 `where jom`,如果能成功返回路径,说明 Qt 环境也配置好了。

三、实战演练:手动编译 `testqmake` 项目

        现在,万事俱备。让我们来一步步编译项目。

(1)第一步:启动配置好的终端

        打开一个“Developer Command Prompt for VS”,这个终端已经为我们处理好了 VS 的环境。

(2)第二步:进入项目目录

        使用 `cd` 命令切换到 `testqmake` 项目所在的文件夹。

cd C:\xxxx\testqmake

(3)第三步:运行 `qmake` 生成 Makefile

        在项目目录下,执行 `qmake` 命令。`qmake` 会读取 `testqmake.pro` 文件,并生成一个 `Makefile`,这个文件描述了如何编译和链接我们的项目。

qmake testqmake.pro (或qmake -o makefile testqmake.pro)

        命令执行成功后,您会发现目录下多出了 `Makefile`, `Makefile.Debug`, `Makefile.Release` 等文件。

(4)第四步:运行 `nmake` 或 `jom` 执行编译

        现在,我们使用构建工具来读取 `Makefile` 并执行其中定义的指令。

        *   使用 `nmake` (VS 自带)

    nmake /f Makefile.Release

        这里我们指定了编译 Release 版本。如果不指定,默认可能会编译 Debug 版本。

        *   使用 `jom` (更快)

        如果您配置了 `jom`,可以直接使用它,它会自动寻找 `Makefile` 并以并行方式执行,速度更快。

    jom /f Makefile.Release

        构建工具会调用 `cl.exe` 来编译 `main.cpp` 生成 `main.obj`,然后调用 `link.exe` 将 `main.obj` 和必要的库链接起来,最终在 `release` 文件夹下生成 `testqmake.exe`。

(5)第五步:运行程序

        编译成功后,您可以直接运行生成的可执行文件:

release\testqmake.exe

        如果一切顺利,您将在控制台上看到输出 "test for qmake"。

三、自动化:使用批处理脚本

        为了简化上述流程,我们可以将这些命令写入一个批处理脚本(`.bat` 文件),就像项目中的 `make.bat` 一样。

        一个典型的构建脚本可能如下所示:

@echo off


:: 1. Call the VS environment setup script

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"


:: 2. Generate the Makefile

echo --- Running qmake...

qmake testqmake.pro


:: 3. Build the project using jom (or nmake) for the Release configuration

echo --- Building with jom...

jom /f Makefile.Release


:: 4. Pause to see the output

pause

        有了这个脚本,您只需双击它,或者在任何命令行窗口中运行 `make.bat`,就可以自动完成整个编译过程,非常适合集成到更复杂的自动化任务中。

结论

        虽然现代 IDE 提供了极大的便利,但回归命令行,手动走一遍 Qt 项目的编译流程,能让我们对底层的构建原理有更透彻的理解。掌握了激活 VS 环境(通过 `vcvarsall.bat` 或开发者终端)、配置 Qt 工具路径(通过 `PATH` 变量)以及执行核心命令(`qmake` 和 `nmake/jom`)这三大步骤,您就拥有了脱离 IDE、实现自动化构建和高效排错的关键能力。

看到这里了还不给博主点一个:
⛳️ 点赞☀️收藏 ⭐️ 关注

💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
再次感谢大家的支持!
你们的点赞就是博主更新最大的动力!

评论 139
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮7号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值