gpt4 book ai didi

c++ - 命名空间 'u16string' 中没有名为 'std' 的类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:42 26 4
gpt4 key购买 nike

我正在使用 QT 5.5.0。

当我编译一个程序时,它显示“命名空间‘std’中没有名为‘u16string’的类型”。有趣的是,我以前编译成功了,为什么现在失败了? qstring.h 好像有问题。

我该如何解决?这是错误发生的地方

#ifndef QSTRING_H 
#define QSTRING_H
#if defined(QT_NO_CAST_FROM_ASCII) && defined(QT_RESTRICTED_CAST_FROM_ASCII)
#error QT_NO_CAST_FROM_ASCII and QT_RESTRICTED_CAST_FROM_ASCII must not be defined at the same time
#endif

#include <QtCore/qchar.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qrefcount.h>
#include <QtCore/qnamespace.h>
#include <string>
#if defined(Q_OS_ANDROID)
// std::wstring is disabled on android's glibc, as bionic lacks certain features
// that libstdc++ checks for (like mbcslen). namespace std { typedef basic_string<wchar_t> wstring; }
#endif

#if defined(Q_COMPILER_UNICODE_STRINGS) || defined(Q_QDOC)
static inline QString fromStdU16String(const std::u16string &s);
inline std::u16string toStdU16String() const;
static inline QString fromStdU32String(const std::u32string &s);
inline std::u32string toStdU32String() const;
#endif

最佳答案

修复它:

  1. 由于 mac 上的 Qt 是通过 clang 构建的,因此在“Qt Creator”->“Preferences”->“Kits”中,您应该将“Compiler”设置为 clang。

  2. 不要编写“QMAKE_CXXFLAGS += -std=c++11”,而是将以下配置添加到您的 .pro 文件中:

    CONFIG += c++11

https://forum.qt.io/topic/56064/solved-problem-with-qt-5-5/11

关于c++ - 命名空间 'u16string' 中没有名为 'std' 的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31471279/

26 4 0