【问题标题】:QGroundControl build with Qt on MacQGroundControl 在 Mac 上使用 Qt 构建
【发布时间】:2021-10-08 13:11:05
【问题描述】:

您好,我克隆了 QGround Control 的存储库(开源应用程序link, 但是 Github 上的版本不能用 Qt 编译,我使用支持上指定的 5.12.6 版本(link),我选择的构建环境是 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

【问题讨论】:

  • QGroundControl 是否支持 qt 5.13 .. 你尝试过支持的版本吗.. 我认为是 5.10
  • 是的,我尝试了 Qt 版本,它是 5.12.6 版本,此版本编译为 3.5.6 版本,但不适用于新版本,我应该要求审查吗?

标签: c++ qt qt-creator qgroundcontrol


【解决方案1】:

这里发生了一些事情:

  1. 您正在使用更新的编译器进行编译,其中各种以前的 Kosher 做法(例如声明复制构造函数而不声明赋值运算符)现在被认为已弃用,导致编译器发出有关它们的警告。

  2. 您正在使用-Werror 进行编译,这会导致编译器将所有警告视为错误。这与尚未更新为对最新最好的编译器友好并因此产生警告的 Qt 标头一起是causing your compile to error out

我认为简单的解决方法是在您的项目设置中找到指定 -Werror 的位置,然后将其删除;那么代码应该(希望)编译成功,尽管编译器可能会发出任何警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多