我正在尝试使用 Qt 在 Windows 上构建 C++ 应用。
我的设置是:
- 已安装 Vs2008、2010、2012
- 已安装 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 相关的错误,例如移动和右值引用。
所以我想知道的是:
- Windows 上的 Qt 可以使用 Vs2010 支持的 C++11 特性吗?
- 如果是那么如何?
- 如果不是,那么我非常失望,因为在 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/