QT5.0.2编译QCustomPlot报looser throw specifier错误,请教

用QT编写一个试验上位机,需要处理can口回传的数据并描绘波形,在网上下载了QCustomPlot的.h和.cpp文件,加入工程后编译始终有以下六个错误,试了各种办法都不行,束手无策特来请教网上各位同学,多谢多谢!

.pro文件已添加 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
报的编译错误有:
D:\QT\myCan1\qcustomplot.h:4374: 错误:looser throw specifier for 'QCPAbstractPlottable1D::QCPAbstractPlottable1D() [with DataType = QCPGraphData]'
D:\QT\myCan1\qcustomplot.h:4126: error: overriding 'virtual QCPPlottableInterface1D::
QCPPlottableInterface1D() noexcept (true)':-1: In instantiation of 'class QCPAbstractPlottable1D': required from here

另外5条和此条类似,指向同一段qcustomplot.h代码

版本不兼容,引用文心一言排查一下:
确认你使用的QCustomPlot版本与你的QT版本兼容。你可以查看QCustomPlot的文档,以确定它是否支持你的QT版本。
检查你的.pro文件是否正确配置。你需要确保正确指定使用的QT版本,并且已经添加了QCustomPlot的支持。你可以参考QCustomPlot的文档,以了解如何正确配置.pro文件。
如果你已经排除了以上两个问题,那么尝试重新编译你的项目,并确保所有依赖项都已正确安装和配置。
如果以上步骤都没有解决问题,那么你可以考虑使用其他版本的QCustomPlot或使用其他绘图库来处理CAN数据。

你可以试试
QCPAbstractPlottable1DQCPGraphData等类的构造函数中加上 noexcept(true) 标记。例如,可以在 qcustomplot.h 中找到以下代码段:

QCPAbstractPlottable1D() {}

把它改成:

QCPAbstractPlottable1D() noexcept(true) {}

按照同样的方式,对 QCPGraphData 等类也进行修改。然后重新编译你的程序试试

该错误可能是由于编译器的版本过旧导致的。建议尝试更新编译器或使用其他编译器来编译QCustomPlot。

另外,有一个成功的实例,有一个思路是这样的,手动添加-std=c++11参数来编译QCustomPlot,来解决该问题。
具体的解决方法如下:
打开Qt Creator中的.pro文件,找到需要编译的QCustomPlot相关的代码段。
在代码段前添加代码:!define QCP_NO_CPP11
在编译QCustomPlot的编译器选项中,添加-std=c++11参数。
重新编译QCustomPlot即可解决问题

外部符号未找到,但是使用 qcustomplot 就两个文件,不需要其它依赖库,因此,很有可能是需要在 QT 工程配置中添加依赖,在官网上看下示例,清晰明了,原来是缺少核心组件 printsupport,在 .pro 文件中添加即可。

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

将上面一行添加到工程的 .pro 文件开始的地方,即可完美使用 qcustomplot 所带来的所有功能。

错误提示在重写QCPPlottableInterface1D方法时出现了问题,出现这个问题的原因可能是你下载的这个代码本身有问题,或者代码使用的软件版本与你的不一致导致的。检查检查下你下载的代码所支持的软件环境是什么样的,对比下自己的,看下是不是环境不一样导致的

试试更改编译器的标志,将其设置为支持C ++ 11的编译器。
可以在你的项目中增加以下编译器标志:
QMAKE_CXXFLAGS += -std=c++11
或者在 .pro 文件中增加以下行:
CONFIG += c++11