欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 【qt踩坑】路径含中文导致的报错,以及 OpenGL的链接报错

【qt踩坑】路径含中文导致的报错,以及 OpenGL的链接报错

2025/4/29 16:01:12 来源:https://blog.csdn.net/songhuangong123/article/details/141903004  浏览:    关键词:【qt踩坑】路径含中文导致的报错,以及 OpenGL的链接报错

背景

本来是准备采用VS+Qt插件的方式来开发Qt的,但是学习过程中发现,这种模式还是没有直接用Qt Creator 开发来的方便,插件这种模式坑多,功能不完善。
不过在直接使用Qt Creator的时候也踩坑了:

(最后发现,Qt Creator 和 VS+qt插件 的两种方式可以混用。 vs 也可以直接打开qt的cmake工程。 也就是可以结合两者的优势!)

中文路径

在这里插入图片描述
之前,我使用VS+qt插件的方式的时候,根本没遇到不能是中文路径的问题。结果这里如果选择
MinGW作为编译器,居然不支持中文路径。如果有中文路径直接报错:

 Error while building\deploying project OpenGL456 (kit:-1: Desktop Qt 6.7.2 MinGW 64-bit)

怎么,这年头支持个中文这么难吗?QT 还能不能好好玩耍了?

不过如果选择编译器 MSVC2019,这个构建没有报错了!也就是说,使用MSVC2019这个编译器能支持中文路径!

CMake

使用 QOpenGLWidget 空间,需要手动在CMake 中添加相应的库

find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
target_link_libraries(OpenGL789 PRIVATE Qt6::OpenGLWidgets)

多继承

添加这句后编译报错!链接时找不到这个函数:setPolygonMode。

void MyOpenGLWidget::setPolygonMode(bool isWire)
{makeCurrent();if (isWire){glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);}else{glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);}doneCurrent();update();
}

​​在这里插入图片描述

原因时自定义的GLWidget类要进行多继承,还需继承:QOpenGLFunctions_3_3_Core

find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
find_package(Qt6 REQUIRED COMPONENTS Gui)
find_package(Qt6 REQUIRED COMPONENTS OpenGL)

target_link_libraries(OpenGL789 PRIVATE Qt6::OpenGLWidgets)
target_link_libraries(OpenGL789 PRIVATE Qt6::Gui)
target_link_libraries(OpenGL789 PRIVATE Qt6::OpenGL)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com