OCLint編譯手冊

安裝CMake

官網(wǎng)下載dmg安裝

安裝后需要安裝命令行工具:Tool->How to install for command line use

提示三種方法民泵,選擇一種:

sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

也可以使用brew安裝

brew install cmake

安裝Ninja

brew install ninja

安裝openssl

brew install openssl

下載源碼

OClint on Github

編碼源碼

cd oclint-scripts
./make

時間會比較長

修改環(huán)境變量

export OCLINT="$HOME/Code/Sourcetree/oclint/build/oclint-release/bin"
export PATH=$OCLINT:$PATH
cd oclint
cp build/oclint-release/bin/oclint* /usr/local/bin/

以下是為了后面編譯源碼做準備:

ln -s ~/Code/Sourcetree/oclint/build/oclint-release/lib/oclint /usr/local/lib
ln -s ~/Code/Sourcetree/oclint/build/oclint-release/lib/clang /usr/local/lib

檢驗結果

終端執(zhí)行:

oclint --version

結果如下:

LLVM (http://llvm.org/):
  LLVM version 5.0.1
  Optimized build.
  Default target: x86_64-apple-darwin17.5.0
  Host CPU: skylake

OCLint (http://oclint.org/):
  OCLint version 0.13.1.
  Built May 28 2018 (17:58:53).

構建XCode工程

構建Rules工程

cd oclint
mkdir _rules
cd _rules
touch rules.sh
chmod +x rules.sh

輸入:

#! /bin/sh -e

cmake -G Xcode -D CMAKE_CXX_COMPILER=../build/llvm-install/bin/clang++ -D CMAKE_C_COMPILER=../build/llvm-install/bin/clang -D OCLINT_BUILD_DIR=../build/oclint-core -D OCLINT_SOURCE_DIR=../oclint-core -D OCLINT_METRICS_SOURCE_DIR=../oclint-metrics -D OCLINT_METRICS_BUILD_DIR=../build/oclint-metrics -D LLVM_ROOT=../build/llvm-install/ ../oclint-rules

然后:

chmod +ux rules.sh
./rules.sh

同樣的方法,修改shell腳本中的LLVM_ROOT目錄个从,構建reporters和driver等其他目錄。

問題

  1. 'countly/Countly.h' file not found

添加 oclint/countly/include到 OCLintDriver target的build settings-->Header Search Paths

  1. ld: library not found for -lCountly

添加 oclint/build/countly/lib到 oclint-0.13.1 target的build settings-->Library Search Paths

構建LLVM源碼XCode工程

cd oclint
mkdir _llvm
cd _llvm
cmake -G Xcode ../llvm -DCMAKE_BUILD_TYPE:STRING=MinSizeRel

將子工程鏈接起來

  1. 根據(jù)‘構建OClint源碼XCode工程’的方法撤蚊,分別創(chuàng)建driver戳护,core,reporters橘霎,rules工程;
  2. 以driver為主工程殖属,因為這是OClint的入口工程姐叁,將其他子工程添加到driver工程中;
  3. 最后將llvm工程添加到driver工程中洗显;
  4. 配置driver編譯腳本:cp ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME} ../build/oclint-release/bin節(jié)省編譯后拷貝
  5. 配置llvm子工程編譯腳本:cp ${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a ../build/llvm-install/lib修改需要調(diào)試的項目即可

調(diào)試OClint方法

需要在XCode的Edit Scheme中的Arguments Passed On Launch中添加啟動參數(shù):

-R /Users/zhongyafeng/Code/Sourcetree/oclint/_rules/rules.dl/Debug -p /Users/zhongyafeng/Code/JDJR/jdjrMobile_IOS_all --verbose -max-priority-1=10000 -max-priority-2=10000 -max-priority-3=10000 -report-type pmd -o oclint.xml /Users/zhongyafeng/Code/JDJR/jdjrMobile_IOS_all/JDWallet/JDWallet/CBLibrary/Addition/UIFont+CBAddition.m

參考資料

OCLint+Xcode實現(xiàn)Code Review

OCLint 如何自定義規(guī)則

如何調(diào)試OCLint自定義規(guī)則

Code Review-OCLint系列開篇

CMake入門

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末外潜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挠唆,更是在濱河造成了極大的恐慌处窥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玄组,死亡現(xiàn)場離奇詭異滔驾,居然都是意外死亡谒麦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門哆致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绕德,“玉大人,你說我怎么就攤上這事摊阀∏ń常” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵驹溃,是天一觀的道長。 經(jīng)常有香客問我延曙,道長豌鹤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任枝缔,我火速辦了婚禮布疙,結果婚禮上,老公的妹妹穿的比我還像新娘愿卸。我一直安慰自己灵临,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布趴荸。 她就那樣靜靜地躺著儒溉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪发钝。 梳的紋絲不亂的頭發(fā)上顿涣,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音酝豪,去河邊找鬼涛碑。 笑死,一個胖子當著我的面吹牛孵淘,可吹牛的內(nèi)容都是我干的蒲障。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘫证,長吁一口氣:“原來是場噩夢啊……” “哼揉阎!你這毒婦竟也來了?” 一聲冷哼從身側響起背捌,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤余黎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后载萌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惧财,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡巡扇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了垮衷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厅翔。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖搀突,靈堂內(nèi)的尸體忽然破棺而出刀闷,到底是詐尸還是另有隱情,我是刑警寧澤仰迁,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布甸昏,位于F島的核電站,受9級特大地震影響徐许,放射性物質(zhì)發(fā)生泄漏施蜜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一雌隅、第九天 我趴在偏房一處隱蔽的房頂上張望翻默。 院中可真熱鬧,春花似錦恰起、人聲如沸修械。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肯污。三九已至,卻和暖如春吨枉,著一層夾襖步出監(jiān)牢的瞬間仇箱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工东羹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剂桥,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓属提,卻偏偏與公主長得像权逗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冤议,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容