> animation; 但是,在我的代码中包含这一行会导致以下错误: cc1plus: warnings being t-6ren">
gpt4 book ai didi

c++ - Qt4: QMap导致 "strict-aliasing rules"编译错误

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

我正在尝试在 C++ 中的 Qt 4.5 中创建以下数据结构:

QMap<int, QMap<QString, QVector<QPointF> > > animation;

但是,在我的代码中包含这一行会导致以下错误:

cc1plus: warnings being treated as errors
In file included from XXX/XXX/XXX/MainWindow.qt.C.tmp.C:113:
/usr/lib/qt4/include/QtCore/qmap.h: In member function ‘void MainWindow::exportAnn()’:
/usr/lib/qt4/include/QtCore/qmap.h:588: error: dereferencing pointer ‘y’ does break strict-aliasing rules
/usr/lib/qt4/include/QtCore/qmap.h:586: note: initialized from here
Command exited with non-zero status 1

我的组织要求我将所有警告都视为错误,所以我不能简单地忽略它。这是 Qt 中的错误,还是我做错了什么?

最佳答案

您提到的代码适用于 Intel/Mac OS X 上的 Qt 4.6.1 和 GCC 4.4.1。

$ cat a.cpp #include <QtCore>
void foo (QMap<int, QMap<QString, QVector<QPointF> > > &map)
{ map.clear(); }
$ g++-4.4-fsf -c -DQT_CORE_LIB -DQT_SHARED -I/Library/Frameworks/QtCore.framework/Versions/4/Headers a.cpp -W -Wall -Werror -g -O3 -fPIC
$

所以您的问题可能已通过升级到 Qt 4.6.1 得到解决。 (除非它是特定于编译器目标的错误,这似乎不太可能;另外,您还没有告诉我们您正在编译的平台。)

关于c++ - Qt4: QMap导致 "strict-aliasing rules"编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248936/

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