【问题标题】:Qt <codecvt> : No such file directoryQt <codecvt>:没有这样的文件目录
【发布时间】:2014-06-18 18:33:34
【问题描述】:

我不能在 Qt 5.1 中使用std::wstring_convert,因为它告诉我&lt;codecvt&gt;:没有这样的文件目录。我能做些什么?我不知道...此代码在 MSVC 2013 中有效。

【问题讨论】:

  • 这与Qt无关,该头文件是标准库的一部分,通常与您的编译器一起提供,而不是Qt。
  • 我使用 Qt Creator 的 GUI。 Qt Creator是不是应该包含一个标准的c++库(std::)?
  • 如果您使用 Qt Creator,它可能附带一个 GCC 版本及其 libstdc++(C++ 标准库的 GCC 变体)。您必须确保该版本足够新以处理 C++11,并且确保在构建时设置了 -std=c++11 标志。
  • @JoachimPileborg:有 mingw 和 msvc 版本。您可以通过查看下载页面来查看。
  • "不是 Qt Creator 应该包含一个标准的 c++ 库(std::)" 创建者只是一个 IDE。错误来自编译器,not 来自 IDE。这与 Qt 无关。

标签: c++ qt c++11


【解决方案1】:

QtCreator 只是一个允许您编辑源文件的前端,它不包含编译器。在 Windows 上,您需要 MinGW 或 Visual Studio 来编译代码。

如果您想在 Visual Studio 2013 中使用 Qt 5.1,您必须自己编译 Qt。 Digia 为 Visual Studio 2010 和 2012 提供构建。您可以找到最新版本的 Qt here 或旧版本 here

我的建议是安装 Visual Studio 2012 并下载 Qt 的 VS2012 版本。然后转到工具 > 选项 > 构建和运行 > 工具包,单击右侧的添加按钮(或修改现有的按钮,因为它可能无论如何都不起作用)。如果您下载的是 64 位版本的 Qt,请将编译器设置为“Microsoft Visual C++ 编译器 11.0 (amd64)”,如果您下载的是 32 位版本,请将编译器设置为“(x86)”。

然后将调试器设置为 cdb.exe 并将 Qt 版本设置为您刚刚下载的那个(如果您没有看到它,请转到顶部的 Qt 版本选项卡,添加它,单击应用并返回到套件,它应该在那里)。单击确定,您的工具包应该准备好了!确保您没有指示潜在错误的警告信号。

现在打开您的项目并转到“项目”选项卡 (Ctrl + 5) 并确保您的项目使用了正确的工具包。

您现在应该已正确设置。

此外,如果您不想安装 Visual Studio 2012 并希望(或必须)使用 VS 2013,您可以使用位于 here 的 Qt 5.3 BETA 版本。请注意,这些构建处于测试阶段,不应在生产代码中使用,如果您想在生产代码中使用 VS2013 和 Qt,我建议使用 VS2013 构建 Qt 5.2.1,这并不难,但可能需要同时。

【讨论】:

    【解决方案2】:

    您的项目文件中缺少此内容:

    CONFIG += c++11
    

    您需要确保您的 GCC 版本(由 mingw 提供)支持该功能。您可能正在使用不受支持的旧版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2012-04-01
      • 2014-08-31
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多