c++ - Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 编译器

标签 c++ visual-studio-2010 visual-c++ c++11 qt5

我正在尝试使用 Qt 在 Windows 上构建 C++ 应用。

我的设置是:

  1. 已安装 Vs2008、2010、2012
  2. 已安装 Qt 5 RC1

现在,当我#include 并尝试使用 std::unique_ptr 时,它告诉我它没有定义,所以我查看了 VS2010 header ,发现需要定义 _HAS_CPP0X,所以我将它作为 DEFINES + 添加到 .pro = _HAS_CPP0X

这仍然没有效果,所以我 ctrl+clicking #include memory 只是为了找到它使用的 memory header 来自:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include

里面真的没有任何 std::unique_ptr!

当然它应该看:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include ?

我想我会通过完整路径包含内存,但这仍然失败,因为包含的内存 header 本身与 C++11 相关的错误,例如移动和右值引用。

所以我想知道的是:

  1. Windows 上的 Qt 可以使用 Vs2010 支持的 C++11 特性吗?
  2. 如果是那么如何?
  3. 如果不是,那么我非常失望,因为在 Linux 上开发跨平台 Qt 5 应用程序意味着它不是跨平台的,因为不可能为任何其他平台构建它!

编辑:

为此,解决方案很明确:下载 Qt5 的源代码并使用 MinGW 构建它,一切就绪(包括已接受答案中的 C++11 pro 选项)。

最佳答案

你可以简单地说:

CONFIG += c++11

在您的 .pro 文件中。但强烈建议将编译器升级到最新的 g++clang

关于c++ - Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821689/

相关文章:

c++ - 如何使用 Visual C++ 2008 查看代码的输出?

c++ - fstream getline() 未处理的异常

c++ - 如何为 Borland 编译器重写 C++ 模板代码

visual-studio-2010 - Entity Framework 4.1 在创建 ADO.NET 实体数据模型时使用 DbContext 自动生成

c++ - HPET 的频率 vs CPU 频率用于测量时间

vb.net - 扩展多行代码段在底部添加额外的行

c# - VS2010 Profiler 找不到符号

C++:switch 语句中的结构成员

c++ - 在 FOR 循环中声明变量

python - 使用多线程 C++ 扩展时是否需要注意 Python GIL?