gpt4 book ai didi

c++ - qdir.h 与 x.h (X11) : how to resolve? 冲突

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:25 25 4
gpt4 key购买 nike

我正在尝试在使用 QDir 的项目中使用 QFileDialog。简单地包含文件会导致编译错误(Qt 版本为 4.8.5):

In file included from file.qt.cpp:25:
In file included from another_file.qt.h:26:
In file included from /usr/include/QtCore/QDir:1:
/usr/include/QtCore/qdir.h:107:21: error: expected '}'
Unsorted = 0x03,
^
/usr/include/X11/X.h:540:19: note: expanded from macro 'Unsorted'
#define Unsorted 0
^
/usr/include/QtCore/qdir.h:104:19: note: to match this '{'
enum SortFlag { Name = 0x00,
^
[... some more errors, but I think these are related to the above error ...]


6 errors generated.
make[2]: *** [CMakeFiles/Volume2.dir/OGLFrame.qt.cpp.o] Error 1
make[1]: *** [CMakeFiles/Volume2.dir/all] Error 2
make: *** [all] Error 2

我已经检查了 qdir.h 并且有一个右括号。但正如错误提示的那样,X.h 中的#define 与枚举元素之间存在冲突。我发现了一份 8 年前的错误报告 (http://code.mythtv.org/trac/ticket/1417),它建议在 X11 头文件之前包含 Qt 头文件。由于我自己不包括 X.h,而是链接到 X11,所以我很确定它在这里不适用。

剩下的问题是如何解决这个冲突?非常感谢任何帮助。

最佳答案

如果可能改变包含的顺序,或者在包含 qdir.h 之前执行 #undef Unsorted 以清理 x.h 的困惑

关于c++ - qdir.h 与 x.h (X11) : how to resolve? 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20175259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com