如何在MinGW64环境下编译包含Qt6库的C++代码?
问题解决方案
1. 确认运行终端类型
你使用的必须是MSYS2自带的MinGW 64-bit 终端,不能使用默认的MSYS终端:两个终端的环境变量不同,默认MSYS终端调用的是原生MSYS的gcc工具链,无法匹配mingw-w64版本的Qt6库,会直接报头文件、库文件找不到的错误。
2. 修正编译命令格式
你当前的g++命令被拆分为两行,没有加bash续行符\,执行时第二行参数会被识别为独立命令,直接报错。可以选择两种修正方式:
- 所有参数合并为同一行执行:
g++ version.cpp -o version -I/mingw64/include/qt6/QtCore -I/mingw64/include/qt6 -I/mingw64/lib/qt6 -lQt6Core -fPIC -DQT_CORE_LIB - 每行末尾添加续行符
\再执行:g++ version.cpp -o version -I/mingw64/include/qt6/QtCore \ -I/mingw64/include/qt6 -I/mingw64/lib/qt6 -lQt6Core -fPIC -DQT_CORE_LIB
这里额外新增的-DQT_CORE_LIB是Qt6要求的编译宏,缺失会触发头文件内的语法、导入导出规则错误。
3. 更稳定的Qt程序编译方式
手动指定头文件、库参数容易出错,推荐直接使用Qt官方配套的qmake工具自动生成编译配置:
- 同
version.cpp目录下新建qt_test.pro文件,写入以下内容:QT += core CONFIG += console SOURCES += version.cpp - 在MinGW 64-bit终端依次执行以下命令:
qmake qt_test.pro make
编译完成后直接运行生成的version.exe即可正常输出Qt版本号。
内容的提问来源于stack exchange,提问作者yui amanda
相关产品推荐
相关产品推荐

