Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 compiler



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

我的设置是:

  1. 已安装Vs200820102012
  2. 已安装Qt 5 RC1

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

这仍然没有效果,所以我ctrl+点击#includememory,只使用中的内存头找到它

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?

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

所以我想知道的是:

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

编辑:

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

您可以简单地输入:

CONFIG += c++11

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

我正在运行QT Creator 2.6.0,因此假设如果您转到工具>选项>构建&运行,然后查找编译器选项卡,您应该会看到一个自动检测到的编译器列表,希望包括Microsoft Visual C++编译器10.0。如果没有,则可以手动添加。

至于C++11支持,如果您使用cmake并将项目导入QT Creator,则可以将其添加到cmake文件中:set(cmake_CXX_FLAGS"-std=C++0x")

如果您使用qmake,则根据手动设置qmake_CXFLAGS+=-std=c++0x

编辑:上述Visual Studio 2010(Visual C++10.0)默认情况下启用对C++11的支持,尽管需要注意的是它只是一个子集,但这里有一个相关的问题。

Windows上的Qt可以使用Vs2010支持的C++11功能吗?

您必须获得Visual 2012。

如果没有,那么我非常失望,因为在Linux上开发跨平台的Qt 5应用程序意味着它不是跨平台的,因为它不可能为任何其他平台构建!

在mac上,使用XCode 4编译器CLang 2,在任何平台上,基于GCC 4.7的编译器都可以使用

相关内容

  • 没有找到相关文章

最新更新