QT creator qt6.0 使用msvc2019 64bit编译报错

qt creator qt6.0报错:

D:\Qt6\6.3.0\msvc2019_64\include\QtCore\qglobal.h:123: error: C1189: #error:  "Qt requires a C++17 compiler, and a suitable value for __cplusplus. On MSVC, you must pass the /Zc:__cplusplus option to the compiler."

pro文件添加:QMAKE_CXXFLAGS += -std:c++17 -Zc:__cplusplus -permissive- option

//:-1: error: dependent '..\..\..\..\Qt6\6.3.0\msvc2019_64\include\QtWidgets\QMainWindow' does not exist.

pro文件添加:(这个语法将使makefile包含绝对路径)

QMAKE_PROJECT_DEPTH = 0

QT creator显示信息:

mainwindow.h:10:10: In included file: STL1001: Unexpected compiler version, expected MSVC 19.29 or newer.

不影响编译,可忽略

vs2019参考解决方法:

错误 C1189 #error: STL1001: Unexpected compiler version, expected MSVC 19.22 or newer.

出现问题的原因
通过网络查找社区,看个方面资料,终于定位到问题所在:
#define _MSC_VER 1500
由于这句宏定义要求的mscv版本为15.00版本,而我使用的visual studio 2019 (社区版)使用的mscv版本为19.22,两者版本不对应,导致编译的时候出现编译器版本的报错

解决方案
直接修改这句宏定义为自己使用visual studio的mscv对应版本即可成功编译通过。

#define _MSC_VER 1922

### QT 6.5.3、VS2022 和 PCL 1.14.1 进行点云三维建模软件开发 #### 配置环境 为了使用QT 6.5.3与Visual Studio 2022以及PCL 1.14.1进行点云处理和三维建模应用的开发,需先完成必要的工具链设置。 对于Windows平台上的Qt安装,建议采用在线安装程序并指定MinGW版本以简化依赖管理过程[^1]。然而,在本案例中由于选择了Visual Studio编译器,则应通过Qt Installer选择MSVC套件来匹配VS2022所使用的微软编译器环境。 针对PCL库的支持,可以从官方网站下载预构建二进制文件或自行编译源码。如果决定利用已有的发行版,请确保其适用于相同架构(即x86_64)下的Visual C++运行时,并按照说明集成至项目之中。 #### 创建新工程 启动Qt Creator IDE之后新建一个基于CMakeLists.txt模板的应用程序框架: ```cmake project(PointCloudViewer VERSION 1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) find_package(PCL 1.14 REQUIRED COMPONENTS common io visualization) add_executable(${PROJECT_NAME} main.cpp viewer.cpp viewer.h) target_link_libraries(${PROJECT_NAME} PRIVATE PCL::common PCL::io PCL::visualization) ``` 此脚本定义了一个简单的可执行目标,并链接了Point Cloud Library中的核心模块以便后续操作点数据集。 #### 编写代码实现基本功能 下面展示了一段用于加载PLY格式模型并显示于窗口内的样例片段: ```cpp #include <QApplication> #include <pcl/io/ply_io.h> #include <pcl/visualization/pcl_visualizer.h> int main(int argc, char *argv[]) { QApplication app(argc, argv); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); if (pcl::io::loadPLYFile<pcl::PointXYZ>("example.ply", *cloud) == -1) return (-1); boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer( new pcl::visualization::PCLVisualizer("3D Viewer")); viewer->setBackgroundColor(0, 0, 0); viewer->addPointCloud<pcl::PointXYZ>(cloud, "sample cloud"); viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud"); while (!viewer->wasStopped()) { viewer->spinOnce(); QCoreApplication::processEvents(QEventLoop::AllEvents, 1); } return 0; } ``` 上述程序读取外部存储的多边形文件(.ply),将其转换成内部表示形式后传递给可视化组件负责渲染输出;同时保持事件循环响应用户交互直至关闭请求到来为止。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

txwtech笛克特科

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

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

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

打赏作者

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

抵扣说明:

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

余额充值