mac下通过xcodebuild使用oclint

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中通过cp命令进到需要lint的工程路径下
2.在bash中执行:xcodebuild | tee xcodebuild.log 
 此命令调用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,布布扣,bubuko.com

时间: 2024-10-29 19:13:30

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

mac下cordova的ios-deploy安装问题

mac下进行cordova项目编译部署到ios设备,这个时候需要安装ios-deploy,会失败: npm WARN lifecycle [email protected]1.8.6~preinstall: cannot run in wd %s %s (wd=%s) [email protected]1.8.6 ./src/scripts/check_reqs.js && xcodebuild /usr/local/lib/node_modules/.staging/ios-deploy

Mac下获取AppStore安装包文件路径

本文介绍了Mac下如何找到AppStore下载的安装包路径,以及如何提取出来供以后使用的相关步骤,希望对大家有所帮助. 通过远在大洋彼岸的苹果服务器下载东西,确实有够慢啊!AppStore更甚:甚至都经常提示连不上服务器,而有些软件呢,还必须从AppStore下载安装,所以没办法,谁让上了苹果的贼船呢!公司的网速更是不敢恭维,以至于基本上不下东西,除非像这次一样:手贱的把iPhone6升级到8.2.2了,然后Xcode6.1.1真机调试不成了,所以需要下个Xcode6.2.昨天刚更新的Xcode

.NET跨平台之mac 下vs code 多层架构编程

合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入,申请备注填写姓名+技术+工作年限) Q  Q:408365330     E-Mail:[email protected] 概述: 为了研究跨平台.NET 开发,我打算利用.NET core 编写一个跨平台的cms,这个CMS我也秉着开源的原则放到github上面,为.NET 开源社区做点小小的贡献吧.如果有兴趣的可以联系我一起为.NET开源和跨平台做点小小的贡献吧.EgojitCMS传送

Mac&#160;下locate命令使用问题WARNING: The locate database (/var/db/locate.database) does not exist.

想在Mac下使用locate时,提醒数据库没创建: WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the d

mac下创建cocos2d-x 3.7项目

因为之前开发都是在window下进行开发,而且都是用quick进行开发,因此对c++以及在Mac下的开发还不是很了解,最近买了台Mac,想把这方面补给一下,做一下笔记. 首先先去cocos2d-x官网上下载cocos2d-x3.7,在打开终端,进入cocos2d-x3.7文件夹下的: cocos2d-x-3.7/tools/cocos2d-console/bin目录下,输入命令: ./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d

关于Mac下的SSH客户端iterm2等配置

linux后台开发的同学们晓得,在windows下有xshell\securecrt这样优秀的ssh客户端软件.mac下查找了下,有securecrt mac版,网上也有破解的,试用了一段时间,一个问题始终没有能解决——ssh链接偶尔会断掉.关于这个问题,先说下leby的工作环境吧:我们是不能直接ssh目标主机的,必须用ssh代理中转,于是搭建了一个HTTP的proxy,这之前在windows下xshell工作很好.在mac的scrt下,总是会随机掉线,一些超时配置当然是试过的,不能解决问题.

mac下,mysql5.7.18连接出错,错误信息为:Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shell中输入的命令,一定要输全包括:&等符号 第一步:苹果->系统偏好设置->最下面点MySQL,关闭mysql服务 第二步:进入终端输入(cd /usr/local/mysql/bin/)回车输入(sudo su)回车以获取管理员权限输入(./mysqld_safe --skip-grant

Mac下切换Python版本

Mac下有多个版本的Python时,需要进行版本切换.我使用的是anaconda,在终端下进行包安装时,默认Python版本是MacOS自带的Python,需要进行手动的版本切换. # 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc # 更新bashrc以立即生效 source ~/.bashrc 以我主机为例,切

mac下配置maven环境变量

记下配置mac下maven环境变量的问题. 下载maven 后解压到某一路径下.根据网上很多人的方法,echo ??M3_HOME只能得到路径.但 mvn --version是没用的, 还是会提示 command not found. jdk是没有任何问题的.所以应该解决的还是maven的问题. 修改bash_profile vim ~/.bash_profile 输入以下内容: 即可.