std type_traits conflict with Qt type_traits

std type_traits conflict with Qt type_traits

本文关键字:traits type Qt with conflict std      更新时间:2023-10-16

我安装了Qt 5.8,但出现此错误。我的专业文件中也有 CONFIG += c++14,我也尝试了使用 c++11。

/usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:106: error: ‘is_same’ is not a member of ‘QtPrivate’!QtPrivate::is_same<const 

/usr/include/c++/5/type_traits:958: note:   ‘std::is_same’
     struct is_same;

我一直在Qt git存储库中进行一些挖掘,基于@DanielJour对问题的评论。

查看文件qtimer.h的历史记录并将其与您的错误消息(qtimer.h:106: error: ‘is_same’ is not a member...(相关联,我发现此提交将is_same的调用从第 106 行移动到第 112 行(并且从未返回(,因此您包含该提交之前的qtimer.h

该提交是从 2016-01-15 开始的,从 Qt 5.7 开始包含在内。

所以我的猜测是你已经安装了几个不同版本的Qt,并且不知何故你的程序包括旧的标题,而不是Qt 5.8中的标题。

导致我得出该结论的另一个注意事项是 您的头文件在 /usr/include/x86_64-linux-gnu/qt5/ ,但安装它的通常位置是 /usr/include/qt/usr/include/qt5 .你的看起来像一个多库或交叉编译器路径......