【问题标题】:Using Clang Static Analyzer from within Xcode在 Xcode 中使用 Clang 静态分析器
【发布时间】:2009-06-07 13:02:10
【问题描述】:

由于“当前项目目录”没有 Xcode 脚本变量,您如何创建脚本菜单项以从 Xcode 对当前项目运行 Clang 静态分析器?

【问题讨论】:

    标签: xcode clang


    【解决方案1】:

    从 XCode 脚本菜单项,“编辑用户脚本”输入以下脚本:

    #!/bin/bash
    result=$( osascript << END
    tell application "Xcode"
     tell active project document
      set projectPath to path as string
     end tell 
    end tell 
    return projectPath
    END
    )
    
    cd "$result"
    
    /Developer/clangchecker/scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator3.0
    

    显然,您需要调整安装 Clang 的路径,并调整到您使用的 SDK 版本。

    记得在使用 scan-build 之前立即执行“Clean All”,否则结果可能不完整。

    【讨论】:

    • 每次运行这个脚本,都必须重启Xcode才能再次运行。为什么?有没有办法在不重新启动的情况下运行脚本两次?它不允许我再次调用它!
    • 嗯....我从来没有遇到过这个问题...但是:这个功能内置在 XCode 3.2 中,我只需升级,完全忘记这个脚本。
    【解决方案2】:

    仅供参考,Xcode 3.2(我相信只有雪豹)在“构建和分析”菜单选项中包含 Clang 静态分析器。

    http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

    Xcode 3.2 的一个缺点(除了它仅适用于 Snow Leopard)是 v2.x 模拟器似乎不起作用 - 事实上,我已经看到帖子表明 v2.x 构建不受支持全部。

    【讨论】:

      【解决方案3】:

      我相信 ${PROJECT_DIR} 环境变量是运行构建阶段脚本的项目目录所需的。

      【讨论】:

      • ${PROJECT_DIR} 可以在构建阶段脚本中工作,是的,但不能在可以从脚本菜单触发的用户脚本中工作。
      • 是的,你的问题很清楚。对不起。你仍然可以在你的项目中创建一个 clang 目标(这是我通常做的)。不像菜单脚本那么干净(当然,您必须在每个项目中创建一个),但效果很好。
      • 啊哈!我什至没有想过要建立一个单独的目标。我猜有很多不同的方法来解决这个问题。
      【解决方案4】:

      要么使用捆绑在 XCode 3.2+ 中的版本,要么在 https://clang-analyzer.llvm.org/ 下载更新的版本,然后在 https://clang-analyzer.llvm.org/xcode.html 上查看一些额外说明,以将 XCode 切换到下载的版本。

      【讨论】:

        猜你喜欢
        • 2016-12-05
        • 2016-11-17
        • 1970-01-01
        • 2011-06-24
        • 2010-12-24
        • 2015-12-03
        • 2017-10-27
        • 2016-10-07
        • 2017-04-30
        相关资源
        最近更新 更多