回答
如果你正在使用gcc 4.7,你可以访问大多数的C++ 11,如果你有-std=c++11
或-std=gnu++11
你可以在std
命名空间here检查出支持的功能编译。 tr1
子命名空间适用于现在已经制定标准的草案。
使用MinGW编译器(可能是任何gcc编译器)编译Qt时,可能会遇到此问题,该编译器默认启用C++ 11标准来编译C++程序。
第三方库JavaScriptCore试图定义一些'正常化'包装和相关模板,但显然它尚未被更新以处理GCC的更新以包含完整的C++ 11标准。
的解决方法是使用MinGW的编译器不支持C++ 11个功能默认情况下,或通过编辑mkspecs\win32-g++\qmake.conf
到-std=gnu++98
选项添加到C++来关闭它们构建:
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -std=gnu++98
# ^^^^^^^^^^^^
很好的答案,在2017年修正了我的qt make(4.8)。 – adgang 2017-07-24 23:45:55
尝试(包裹在宏周围#include <type_traits>
)加入 #include <tr1/memory>
在TypeTraits.h
可以更换由C++ 11标准化std::is_trivially_constructible
初步std::tr1::has_trivial_constructor
。请参阅http://www.cplusplus.com/reference/type_traits/is_trivially_constructible。
- 1. Mingw'std :: function'尚未声明?
- 2. 错误:“CvTrackers”尚未声明
- 3. “的boost :: Q_FOREACH”尚未声明
- 4. va_list的尚未声明
- 5. 错误::: STRCMP尚未声明
- 6. ':: hypot将' 尚未声明
- 7. strncasecmp和strcasecmp尚未声明
- 8. 错误:'gint'尚未声明
- 9. 错误:'uint8_t'尚未声明
- 10. 的openmpi:错误:“MPI”尚未声明
- 11. 尚未声明的字符串变量
- 12. 类型 '文件' 尚未声明\t jpeglib.h
- 13. qt单元测试QTreeWidgetItem尚未声明
- 14. JavaScript OOP函数引用尚未声明
- 15. Eclipse CDT:error:':: wcstold'尚未使用MinGW声明
- 16. 错误:'boost :: Q_FOREACH'尚未声明
- 17. QSharedPointer VS std :: tr1 :: shared_ptr VS boost :: tr1 :: shared_ptr
- 18. Cygwin的gcc.4.9.2:错误: ':: lrintl' 尚未声明
- 19. “:: drem尚未声明”在MinGW/GCC中编译tvmet库时
- 20. std :: tr1 :: unordered_map的C++相等
- 21. 'hash'已在此范围内使用tr1 :: hash声明;
- 22. std :: tr1 with visual studio 2017
- 23. std :: tr1 :: shared_ptr是否互斥?
- 24. 前缀'xsi'的命名空间尚未声明
- 25. 错误:尚未声明命名空间前缀“og:image”:XSLT
- 26. 为Android编译ICU:错误: 'ICU_Utility' 尚未声明
- 27. GOTO语句引用标签'QuitWithRollBack',但标签尚未声明
- 28. C++编译错误NetBSD':: system'尚未声明
- 29. 变量初始化并声明后可能尚未初始化
- 30. std :: tr1 :: unordered_map是否有与std :: map :: lower_bound类似的std :: algorithm?
你使用的是哪个版本的mingw32 gcc - 它确实包含了tr1头文件吗? QT的来源绝对包括它所需要的吗? – Rup 2012-04-27 16:28:00
@Rup我使用gcc 4.7,它看起来像它有这些头文件 – smallB 2012-04-27 16:29:25
是的,我发现太晚了,它说在输出中有'win32-g ++ - 4.6'。它试图使用应该在'type_traits'中声明的'std :: tr1 :: has_trivial_constructor'。不过看起来它已经试图包含这一点。你可以在文件中编辑'#if's(或者临时编写'#undef'中的一个常量,然后在最后重新定义它),以便使用tr1不可用的代码。 – Rup 2012-04-27 16:33:26