我正在尝试第n次从源代码编译qt,这次使用选项configure -release -platform-win32
但是我得到了错误:
任何人都知道如何解决它? 感谢。
答案 0 :(得分:6)
使用MinGW编译器(可能是任何gcc编译器)编译Qt时,您可能会遇到此问题,该编译器默认编译启用了C ++ 11标准的C ++程序。
第三方库JavaScriptCore尝试定义一些“规范化”has_trivial_constructor
和相关模板的包装器,但显然它尚未更新以处理GCC的更新以合并完整的C ++ 11标准
修复是使用默认情况下不启用C ++ 11功能的MinGW编译器,或通过编辑mkspecs\win32-g++\qmake.conf
将其添加到C ++版本中来关闭它们: / p>
-std=gnu++98
答案 1 :(得分:2)
如果您使用的是gcc 4.7,那么如果使用-std=c++11
或-std=gnu++11
进行编译,则可以访问大多数C ++ 11,您可以查看std
namespace {{tr1
下支持的功能。 3}}。 {{1}}子命名空间用于草案,现已成为标准。
答案 2 :(得分:0)
尝试(包裹在#include <type_traits>
周围的宏中)添加
TypeTraits.h中的#include <tr1/memory>
答案 3 :(得分:0)
您可以使用C ++ 11标准版std::tr1::has_trivial_constructor
替换初步std::is_trivially_constructible
。请参阅http://www.cplusplus.com/reference/type_traits/is_trivially_constructible。