编译QT 5.2.1的错误;在删除'之前预期的不合格ID

时间:2014-06-12 09:15:29

标签: c++ linux gcc qt5

我正在尝试为旧的Linux发行版(Suse Linux Enterprise 11)编译QT 5.2.1,过了一段时间我收到以下错误:

In file included from qxcbxsettings.cpp:46:0:  
/usr/include/X11/extensions/XIproto.h:1825:17: 
    error: expected unqualified-id before 'delete'  
BOOL        delete;

我或多或少地相信这是因为“删除”是C ++的保留字。如果这个标题是我自己的,我只需将删除重命名为其他内容,但当然在X11头文件的情况下它不是一个选项。
任何想法如何强制gcc编译为此标头的普通C?我找到的只是qt配置脚本的配置选项-no-c++11,但这并没有什么不同。

1 个答案:

答案 0 :(得分:0)

delete是C ++中的保留关键字,报告的错误与X11 / extensions / XIproto.h文件有关here

他们还为同一个

提供了patch

所以你需要应用补丁来编译进一步的补丁就像

+#if defined(__cplusplus) || defined(c_plusplus)
+    BOOL        c_delete;
+#else
     BOOL        delete;
+#endif