c++ - QGroundControl 在 Mac 上使用 Qt 构建
问题描述
您好我克隆了QGround Control的仓库(开源应用链接,但是Github上的版本不能用Qt编译,我使用支持上指定的5.12.6版本(链接),我选择的构建环境是Destop Qt 5.12。 6 clang 64bit 这里是错误(我认为错误来自 Qt Creator 的错误安装或设置):
Qt5.12.6/5.12.6/clang_64/lib/QtCore.framework/Headers/qvariant.h:399: error: definition of implicit copy assignment operator for 'Private' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
inline Private(const Private &other) Q_DECL_NOTHROW
^
请注意,我使用的是 MacOs 11.2.3。
Qt creator 的版本:4.10.2 基于 5.13.2
解决方案
您在这里发生了几件事:
您正在使用更新的编译器进行编译,其中各种以前的犹太实践(例如声明复制构造函数而不声明赋值运算符)现在被认为已弃用,导致编译器发出有关它们的警告。
您正在使用 进行编译
-Werror
,这会导致编译器将所有警告视为错误。这与尚未更新为对最新且最强大的编译器友好并因此产生警告的 Qt 标头一起导致您的编译出错。
我认为简单的解决方法是在项目设置中找到-Werror
指定的位置,然后将其删除;那么代码应该(希望)编译成功,尽管编译器可能会发出任何警告。
推荐阅读
- python - 范围元类;或在包含从 A 继承的嵌套类的 B 类的 __init__ 期间更改 A 类的类变量?
- javascript - 使用 rollup-plugin-uglify 与 RollupJS rollup-plugin-multientry 捆绑时缩小文件的问题
- sql - 如何计算不同行中当前日期和上一个日期之间的差异
- java - 你如何把它从 AppCompatActivity 翻译成 Fragment
- javascript - 如何将此对象转换为数组?
- arrays - Countifs 数组公式
- c# - 在 C# 中,我如何创建一个扩展方法,该方法采用带有泛型参数的 lambda,Func
作为参数。 - javascript - 如何将对象从视图传递到控制器
- java - 根据通用类型创建对象
- acumatica - Acumatica 导入方案将默认收据更改为