QT Creator中包含glm头文件时的编码错误

问题描述 投票:0回答:1

我在QTCreator的QT项目中包含GLM头文件,但我不断收到编码错误。所有文件似乎都设置为UTF-8,并且它们在屏幕上正常显示。我收到以下几条消息:

C:\Users\Luís Longo\OneDrive\Dyno3D\linking\glm\detail\type_mat2x3.inl:-1: In member function 'glm::mat<2, 3, T, Q>::col_type& glm::mat<2, 3, T, Q>::operator[](glm::mat<2, 3, T, Q>::length_type)':
C:\Users\Luís Longo\OneDrive\Dyno3D\linking\glm\detail\type_mat2x3.inl:222: error: converting to execution character set: Illegal byte sequence
assert(i < this->length());
^

。pro文件

QT       += core gui opengl
LIBS     += -lopengl32
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11
INCLUDEPATH += $$PWD/linking/glm
DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += \
    GLPanel.cpp \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    GLPanel.h \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

DISTFILES += \
    fragment.glsl \
    vertex.glsl

OpenGL Widget类

#ifndef GLPANEL_H
#define GLPANEL_H

#include <QWidget>
#include <QOpenGLWidget>
#include "glm.hpp"

class GLPanel : public QOpenGLWidget
{
public:
    GLPanel(QWidget* parent);
protected:
    void initializeGL() override;
    void resizeGL(int w, int h) override;
    void paintGL() override;
private:
    void InitializeOpenGLOptions();
};

#endif // GLPANEL_H```
c++ qt glm-math
1个回答
0
投票

似乎问题出在文件路径中,该文件路径带有“í”字符。更改项目文件夹已解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.