一个确定没有语法错误的QT项目(使用 QT Creator 可运行),在本地使用命令行手动构建时报"undefined reference to `__imp___argc'"错误:

由于项目可以在 QT Creator 上正常运行,怀疑大概率是构建和编译工具的版本问题。检查了一下 QT 6.10.1 自带的 CMake、Ninja、MinGW 本地安装的这三个工具的版本:
| 工具 | QT 6.10.1 集成的版本 | 本地独立安装的版本 |
|---|---|---|
| CMake | 3.30.5 | 4.2.3 |
| Ninja | 1.12.1 | 1.13.2 |
| MinGW | 1.13.1 | 15.2.0 |

为了验证猜测,把系统中原来指向本地安装版本的环境变量全部改为了 QT 安装目录下的集成版本,然后程序就是不再报错了。
原 PATH 变量中的三个工具的路径配置(本机配置,注意替换路径):
C:\Lib\CMake\bin
C:\Lib\mingw64\bin
C:\Lib\Ninja
修改为 QT 集成的三个工具的路径配置(本机配置,注意替换路径):
C:\Lib\Qt\Tools\CMake_64\bin
C:\Lib\Qt\Tools\Ninja
C:\Lib\Qt\Tools\mingw1310_64\bin
结论:
既然是版本不匹配,就没有必要纠结。如果工作内容是开发 QT 应用,那么使用 QT 集成的版本为好,虽然它们都落后于当前最新版本,但 QT 集成它们应该是做过很多测试的,运行 QT 应用的兼容性会更好一些。如果还要开发其他类型的 C++ 应用,需要更新的版本,可以考虑编写一个 BAT 脚本自动切换这些路径值。