【问题标题】:Project Settings Recommends Compiler Warning: "Suspicious Moves"项目设置推荐编译器警告:“可疑动作”
【发布时间】:2016-12-19 18:48:45
【问题描述】:

在一个 Xcode 项目中,我收到一个奇怪的警告。它是什么?这是一件坏事吗?

这是警告:

Project 'Little Hoot' - 启用推荐警告 这将启用以下推荐的编译器警告:

  • 可疑举动

还建议我也更新另一个设置。

目标 'Little Hoot' - 更新 C++ 标准库 'libstdc++' C++ 标准库已弃用。这会将 Target 'Little Hoot' 的设置更新为 'Compiler Default',这是推荐值。

我在网上查过了,但至少第一次警告我找不到答案。

【问题讨论】:

    标签: c++ xcode compiler-warnings


    【解决方案1】:

    “可疑动作”项目/目标设置似乎控制 LLVM/Clang 中的 -Wmove 编译器警告选项,这是一组其他 3 个警告选项:-Wpessimizing-move-Wredundant-move-Wself-move

    这些选项会生成以下警告:

    warning: moving a temporary object prevents copy elision
    warning: moving a local object in a return statement prevents copy elision
    warning: redundant move in return statement
    warning: explicitly moving variable of type A to itself
    

    (来自http://clang.llvm.org/docs/DiagnosticsReference.html 的 Clang 文档)

    因此,您是否接受建议并启用警告可能没什么大不了的。如果你用这些可疑的动作让事情变慢,你不会被告知。

    【讨论】:

      【解决方案2】:

      我最近在设置一个新项目时也从 Xcode 收到了这条消息。我的步骤是从文件(例如 Info.plist)中删除引用,直接在 Finder 上创建文件夹,并将文件添加回 Xcode。我想这是一个安全功能,但如果你的情况和我的一样,那只是一个警告。

      【讨论】:

        【解决方案3】:

        这两个警告都涉及项目中的设置,未反映推荐的默认值。它们可能都是在您升级 Xcode 版本或将旧项目导入更高版本的 Xcode 后触发的。

        除非您有充分的理由不这样做,否则最好遵循建议。最简单的方法是单击警告旁边的黄色三角形,并允许 Xcode 对设置进行适当的更改。

        【讨论】:

          【解决方案4】:

          您应该打开所有警告,除了迂腐警告、未使用的参数和自动综合属性;这三个警告警告大量好的代码。静态分析器警告也是如此。

          然后您查看收到的警告并修复它们。如果您以前没有这样做过,那么我估计所有警告中有 20-40% 是您代码中的实际错误。

          【讨论】:

            【解决方案5】:

            您将能够see warning detail in issue navigator section。您可以通过选择问题来修复它。这将显示一条警报,说明需要在项目设置中进行的必要更改。

            点击执行更改按钮。这将对项目设置进行必要的更改,从而消除此警告。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-02-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-07-02
              • 2023-03-19
              • 1970-01-01
              相关资源
              最近更新 更多