【问题标题】:Compile error for QT 5.2.1; expected unqualified-id before 'delete'QT 5.2.1 的编译错误; “删除”之前的预期不合格 ID
【发布时间】:2014-06-12 18:06:19
【问题描述】:

我正在尝试为较旧的 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++ 的保留字。如果这个头文件是我自己的,我会简单地将 delete 重命名为其他名称,但对于 X11 头文件,这当然不是一个选项。
有什么想法可以强制gcc 将此标头编译为纯 C 吗?我只发现了一个用于 qt 配置脚本的配置选项 -no-c++11,但这并没有什么不同。

【问题讨论】:

  • 能否给我们qxcbxsettings.cpp:46前后的代码

标签: c++ linux gcc qt5


【解决方案1】:

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

他们还提供了patch

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

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

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多