(Qt中添加编译选项)QT在交叉编译时出现parameter passing for argument of type ‘std::_Rb_tree xxxxx changed in GCC 7.1

QT版本都是5.1x。先是在Ubuntu机器上写的代码,GCC版本为5.4,代码编译无 任何警告。后来移植到开发板(GCC版本为7.1)进行编译时,提示这种警告。 发生在代码中对std::map的erase操作这一行代码上。
类似于 itor = infoMap.erase(itor);
不知这种警告有何种不良影响,但是几经检查,代码语法是没有错的。STL中map的元素删除不就是这样子吗。
解决办法:
在项目文件 xxxx.pro中添加下面行:
QMAKE_CXXFLAGS += -Wno-psabi
再次编译无类似警告了。 程序运行了起来也无出现故障。

你可能感兴趣的:(QT,Linux/C++)