在 OS X 10.8.5 上使用 Xcode 5.0 和 Qt 5.1.1 构建问题
Build problems with Xcode 5.0 and Qt 5.1.1 on OS X 10.8.5
我正在构建的代码,可以在OS X 10.8.5上使用Xcode 4.x,Qt 5.0.1构建良好,但我刚刚升级了Xcode和Qt,在拉入Qt标头时我无法再构建任何东西。
问题是QtSharedPointer 类使用 std::forward,但据我所知,OS X 10.8.5/Xcode 5.0 仍然不支持 std::forward。它没有在随附的标准库中的任何地方定义,因此,当我尝试构建时,出现此错误:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtWidgets.framework/Headers/QAction:1:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtWidgets.framework/Headers/qaction.h:47:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtWidgets.framework/Headers/qwidget.h:49:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtGui.framework/Headers/qpalette.h:47:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtGui.framework/Headers/qbrush.h:53:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtGui.framework/Headers/qpixmap.h:49:
In file included from .../Qt5.1.1/5.1.1/clang_64/lib/QtCore.framework/Headers/qsharedpointer.h:50:
.../Qt5.1.1/5.1.1/clang_64/lib/QtCore.framework/Headers/qsharedpointer_impl.h:411:36: error: no template named 'forward' in namespace 'std'; did you mean 'boost::forward'?
new (result.data()) T(std::forward<Args>(arguments)...);
~~~~~^~~~~~~
boost::forward
/usr/local/include/boost/move/utility.hpp:176:21: note: 'boost::forward' declared here
inline T&& forward(U&& t
^
我确实注意到QtSharedPointer标题顶部的这些行:
#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES)
# include <utility> // for std::forward
#endif
但在下面(第 411 行),它只使用 std::forward,而不检查是否定义了这些宏
// now initialize the data
new (result.data()) T(std::forward<Args>(arguments)...);
这些宏实际上是未定义的,所以,我最初强制包含实用程序,但由于我后来发现 std::forward 不在那里,它没有帮助。
这似乎是一个Qt错误,我打算在那里提交它,但是有人想出解决方法吗?
实际上,我意识到使用 std::forward 的整个方法都由另一个检查Q_COMPILER_RVALUE_REFS的 ifdef 保护。我只是简单地编辑了QtCore.framework/Versions/5/Headers/qcompilerdetection.h,并手动未定义Q_COMPILER_RVALUE_REFS,这让我开始构建。
相关文章:
- 在 Qt(C++) 中使用 QProcess 解压缩 - 提取目录问题
- 关于如何使用指向主窗口的指针的 QT 问题
- 如何解决"no Qt platform plugin could be initialized"问题?
- Qt Visual Studio 2015 加载项编译问题
- Qt OpenGL 渲染到纹理性能问题
- Qt 信号/插槽问题
- 在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "
- 在 C++ 的 Qt 中使用 WINAPI 线程时出现问题
- Android因为权限问题而杀死Qt应用程序
- Qt & Firebase C++ SDK 在 iOS 上的链接问题
- 面临在 if 语句之外打印变量数据的问题 完成使用 Qt 编程
- CMake Qt建立在Windows链接器问题之上
- 需要有关在qt c ++应用程序中使用崩溃问题的建议
- 从 Qt 中的信号调用成员函数的问题
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 解决枚举命名问题 - Qt
- 为什么Q_OBJECT宏会导致问题(Qt)
- 影子变量问题Qt
- 时序问题:QT写入串行端口,然后读
- 本程序的信号和插槽问题(Qt)