step1 :下载oclint并安装

下载地址: http://oclint.org/downloads.html

选择mac os x或者darwin的包,下载到本地。

文件夹类似以下:

oclint-release
|-bin
|-lib
|---clang
|-----3.4
|-------include
|-------lib
|---oclint
|-----rules
|-----reporters

安装官方指南: http://docs.oclint.org/en/dev/intro/installation.html

我们此时在bash(终端terminal)中运行oclint会告诉我们命令找不到。我们须要把它的运行文件路径增加到环境变量或者把运行文件复制到系统文件夹。

方法1(推荐):把路径加到环境变量中(实际是.bash_profile或者.bashrc文件里,关于这两者有不知道的同学能够搜索之)

OCLINT_HOME=/path/to/oclint-release   // /path/to/oclint-release 是运行文件存放路径,比如:/Users/xxx/Desktop/oclint-0.9.dev.a6ffa25
export PATH=$OCLINT_HOME/bin:$PATH
关于.bash_profile,mac系统里本身可能不存在,创建和编辑的步骤见下文:
http://blog.csdn.net/openglnewbee/article/details/36663591
关于bashrc,位于/etc文件夹下。使用command+shift+g 能够前往/etc,找到bashrc文件改动权限后能够编辑。

方法2:把运行文件复制到系统文件夹(请自行尝试)

A few directories are supposed to be in the system PATH already, to mention a few, /usr/local/bin, /usr/bin, /bin, etc. Therefore, it’s also possible to copy the OCLint binaries into one of these folders, and move the dependencies over. As an example, presumes /usr/local/bin is in the PATH (may require root permission).
  1. cp bin/oclint* /usr/local/bin/
  2. cp -rp lib/* /usr/local/lib/
Dependency libraries are required to be put into appropriate directory, because oclint executable searches $(/path/to/bin/oclint)/../lib/clang, $(/path/to/bin/oclint)/../lib/oclint/rules and $(/path/to/bin/oclint)/../lib/oclint/reporters for builtin headers and dynamic libraries by default. 以上两个方法运行完当中1个我们就能够说oclint已经安装完毕了。此时在bash中运行oclint应该得到例如以下提示:
oclint: Not enough positional command line arguments specified!

step 2:通过xcodebuild运行oclint命令
1.在bash中通过cd命令进到须要lint的工程路径下
2.在bash中运行:xcodebuild | tee xcodebuild.log 
(若工程中存在多个不同的target,依照例如以下格式输入: xcodebuild  -target selectedTargetName | tee xcodebuild.log,将须要跑的target名字填入到命令中  )
 此命令调用xcodebuild进行了编译并把相关日志信息输入到xcodebuild.log。该log文件是兴许步骤的必要条件,生成在当前的工程文件夹中.官方解释例如以下:
We need to save the xcodebuild output to a log file, by convention, name it xcodebuild.log. We can use xcodebuild <options> | tee xcodebuild.log to pipe every line of the output to xcodebuild.log file.

3.在bash中运行 oclint-xcodebuild xcodebuild.log
此步骤是利用之前的.log文件通过oclint-xcodebuild的可运行文件生成了名为compile_commands.json的json格式文件,该文件应该包括了多组内容。当中的key分别为directory、command、file,该文件不应该为空。

此文件是下一步输入的必要条件。

4. 在bash中运行 oclint-json-compilation-database。此步骤是真正运行了lint,运行完应该在终端输出结果。


若希望输出报告到文件里,运行例如以下命令:
oclint-json-compilation-database -- -o=report.html

官方參考指南:http://docs.oclint.org/en/dev/guide/xcodebuild.html

注意事项:
1.octool 0.7及曾经的版本号不支持xcode5.
2.在运行前注意运行clean,也可在step2中的第二步运行例如以下命令:

xcodebuild -dry-run | tee xcodebuild.log  说明例如以下:

If a source file has been built by xcodebuild, and it’s not been modified since last build, then it might not be compiled again when you invoke xcodebuild the second time. In other words, if it happens, this file won’t be shown in the log. So we won’t see it in the compile_commands.json. To avoid that, use clean build by removing all build products and intermediate files from the build directory.

However, cleaning and building the entire project takes longer time, especially for those big projects. In this case, if file structure hasn’t been changed, and build settings haven’t been modified, then it’s okay to keep the existing xcodebuild.log and compile_commands.json to save time.

If the xcodebuild build can be guaranteed to be successful with the options specified, then we could also use -dry-run option to build the project without actually running the commands, so that we can still capture the xcodebuild log but with reduced time.



mac下通过xcodebuild使用oclint的更多相关文章

  1. Mac下安装最新版本的Graphviz

    由于版本兼容问题,Mac下Graphviz之前一直装的是低版本的2.36.高版本的安装方法如下: 1.log in & download Xcode an Xcode Command Line ...

  2. mac下cordova的ios-deploy安装问题

    mac下进行cordova项目编译部署到ios设备,这个时候需要安装ios-deploy,会失败: npm WARN lifecycle ios-deploy@1.8.6~preinstall: ca ...

  3. appium mac 下 安装及踩坑

    Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台.Appium使用WebDriver的json ...

  4. MAC 下将libpomelo连接到cocos2d-x

    摘要:借助GYP将libpomelo连接到Cocos2d-x项目并使项目能与服务端成功连接. 配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 一.部署GYP(Ge ...

  5. mac下安装及配置tomcat

    mac下的软件不像windows下的程序那样写注册表,对于tomcat的安装来说,在mac下是名符其实的绿色软件,具体操作如下: 1.到 apache官方主页 下载完整 tar.gz文件包.(没有专门 ...

  6. MAC下 mysql不能插入中文和中文乱码的问题总结

    MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...

  7. 【开发软件】 在Mac下配置php开发环境:Apache+php+MySql

    本文地址 原文地址   本文提纲: 1. 启动Apache 2. 运行PHP 3. 配置Mysql 4. 使用PHPMyAdmin 5. 附录   有问题请先 看最后的附录   摘要: 系统OS X ...

  8. 2016年最新mac下vscode配置golang开发环境支持debug

    网上目前还找不到完整的mac下golang环境配置支持,本人配置成功,现在整理分享出来. mac最好装下xcode,好像有依赖关系安装Homebrew打开终端窗口, 粘贴脚本执行/usr/bin/ru ...

  9. 【工匠大道】Mac下Java开发环境配置简述

    本文地址 原文地址 分享提纲: 1. 下载JDK1.7 2. 配置java_home 3 .安装tomcat 4 .安装eclipse或者myeclipse 5.  mysql安装 破解版下载请参考M ...

随机推荐

  1. Hibernate实现分页

    转自:http://blog.csdn.net/huqiub/article/details/4329541 分页在任何系统中都是非常头疼的事情,有的数据库在语法上支持分页,而有的数据库则需要使用可滚 ...

  2. Delphi窗体最大化按钮不可用情况下的最大化

    最大化按钮不可用,而且窗体最大化,我以前一直这样设置:在Object Inspector下把BorderIcons属性下的biMaximize属性设置为False,然后把WindowState属性设置 ...

  3. java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选

    我们平时使用的一些软件,有一部分需要Java环境的支持,但是SUN那么多的产品,让人眼花缭乱的版本号,前看后看都差不多的缩写,让我们选择起来的时候常常望而却步,只好跟着感觉走.所以下面我要介绍的就是那 ...

  4. mysql数据库日期是varchar类型的时间比较查询

     单纯的字符串比较结果不精确. select * from 表明 where times> '2088/12/8 10:02:40' (×) 转换函数如下(数据库为varchar): selec ...

  5. android开发SDcard 响应的文件相关处理(一)

    android开发相关文件类的处理工具类: package com.gzcivil.utils; import java.io.File; import java.util.ArrayList; im ...

  6. VB.Net常用数学函数整理

      System.Math 类中定义了用于数学计算的函数.Math 类包括三角函数.对数函数和其他常用数学函数.下列函数是在 System 名称空间的 Math 类中定义的函数. 注意:要使用这些函数 ...

  7. 引用jquery框架后出错

    问题描述:当引用了jquery框架后,页面的js不能正常工作. 后面我的解决办法:是因为在引用 jquery的框架时的代码为 <script type="text/javascript ...

  8. mysql 数据库热备份

    https://www.percona.com/doc/percona-xtrabackup/2.2/index.html

  9. day10_python学习笔记_chapter13_面向对象编程

    1. class NewClass(parent): def .... 如果没有父类, 则默认继承object类 2. 类属性访问(类似java中的静态属性和方法)直接用类名.属性名, 在python ...

  10. linux系统find命令使用

    find命令简介 1.find的作用 find是个使用频率比较高的命令.常常用它在系统特定目录下,查找具有某种特征的文件. 2.    find命令的格式 find  [-path……]-option ...