homebrew當(dāng)前可用最高版本為0.13版本
-
$ oclint --versionLLVM (http://llvm.org/): LLVM version 5.0.0svn-r313528 Optimized build. Default target: x86_64-apple-darwin19.4.0 Host CPU: skylake OCLint (http://oclint.org/): OCLint version 0.13. Built Sep 18 2017 (08:58:40). 在這之后, 其實還有
0.13.1、0.14和0.15版本, 之所以要升級OCLint版本:
issue547 ,
upgrade llvm 9.0 to resolve xcode11 build's issue
0.14和0.15目前只能通過編譯安裝
編譯安裝過程簡介
一 通過homebrew安裝cmake和Ninja兩個編譯工具
$ brew install cmake ninja
二 編譯安裝OCLint
cd到oclint-scripts路徑下執(zhí)行
./make, 成功之后會出現(xiàn)build文件夾,oclint-release就是編譯成功的oclint工具-
設(shè)置
oclint工具的環(huán)境變量:-
添加環(huán)境
OCLint_PATH=換成你存放的實際路徑/oclint/build/oclint-release export PATH=$OCLint_PATH/bin:$PATH -
更新環(huán)境
執(zhí)行
source ~/.zshrc
這里我用的是zsh如果你使用系統(tǒng)的終端則執(zhí)行source .bash_profile -
把
bin中的全部文件復(fù)制到/usr/local/bin/和/usr/local/lib中cp 換成你存放的實際路徑/oclint-0.15/build/oclint-release/bin/oclint* /usr/local/bin/ sudo cp -rp 換成你存放的實際路徑/oclint-0.15/build/oclint-release/lib/* /usr/local/lib/ cp -rp 換成你存放的實際路徑/oclint-0.15/build/oclint-release/include/* /usr/local/include/
-
-
驗證
OCLint安裝成功, 執(zhí)行$ oclint --versionOCLint (http://oclint.org/): OCLint version 0.15. Built Sep 2 2020 (12:16:58).
OCLint提供的參考資料
失敗分析
在今年4月份時首次遇到這個問題, 當(dāng)時也嘗試過本地編譯0.15版本, 但當(dāng)時以失敗告終后暫時將問題擱置, 也在幻想著
Ryuichi Laboratories沒準(zhǔn)后面就直接發(fā)布新版本到homebrew了
再次回過來處理這個問題發(fā)現(xiàn)情況依舊, 對我產(chǎn)生迷惑的一點(diǎn)是重寫的一個老項目是基于xcode 11新建的工程, 而原來的老項目是16年創(chuàng)建的, 在OCLint 0.13.0下, 一個沒有報錯, 一個沒成功過, 也讓我無法確認(rèn)是否是LLVM版本過低導(dǎo)致. 所以這一次仍然花了些時間在OCLint 0.13.0版本上進(jìn)行調(diào)試.
最終無奈, 再次考慮升級到0.15版本, 翻看了OCLint的issues和提交記錄, 2019-10-22日更新下修復(fù)了xcode 11的問題
OCLint官方的介紹資料還是很詳細(xì)的, 因為時間有點(diǎn)久了, 自己并不是很確認(rèn)第一次升級0.15的時候是否嚴(yán)格按照官方資料來復(fù)制文件到對應(yīng)目錄的, 所以當(dāng)時沒有解決這個問題
第一次應(yīng)該是參考了這篇文章:參考鏈接, 這里的后兩步的cp我換成了ln, 其實我看了下OCLint 0.13通過homebrew安裝后, 也應(yīng)該是鏈接過去的, 我們的構(gòu)建機(jī)OCLint在usr/local/lib/路徑下可以看到oclint和clang文件夾, 通過右鍵顯示原身,會跳轉(zhuǎn)到實際路徑是/usr/local/Cellar/oclint/0.13, 所以很有可能是這三個步驟中的文件夾名稱, /和*我某一步的時候缺少了或是錯了
0.15.0 資源文件分享
如果你本地沒有CMake和Ninja兩個編譯環(huán)境, 并且安裝失敗或者是CMake編譯階段頻繁失敗, 可以使用我提供的編譯好的0.15.0版本
我已經(jīng)Fork了OCLint倉庫, 倉庫地址 并新建了一個feature/0.15.0的分支, 默認(rèn)build被設(shè)置了忽略, 為了更明顯的辨認(rèn), 我將文件夾名稱改為oclint-0.15.0-build, 名稱可以任意修改, 關(guān)鍵是環(huán)境路徑一定要設(shè)置正確.