- blogs:
- cles::blog
2019/02/22

WSL に CX-Checker を一撃でセットアップする



Java でコーディングスタイルをチェックするツールとしては Checkstyle などがありますが、C 言語用に CX-Checker | ルールのカスタマイズが可能なC言語コーディングチェッカ というツールを見つけました。C 言語を専用の XML 形式に変換し、それをスキャンするという方法で動作するツールです。
最近はあまりメンテナンスが行われていないというのと、大学で作成された研究用のプロダクトなので、インストールやCLI 版の利用方法ページはあるものの、正直「使ってもらう気がないのか?」というような内容です。仕方がないので、Windows 10 の WSL 上の Ubuntu 18.10 向けに一撃でセットアップできる方法を作ってみました。
とりあえず、以下の2つのコマンドを WSL で貼り付ければ CX-Checker が依存している Sapid のインストールと、CX-Checker のサンプルの生成が行われます。
# Sapid のセットアップ
wget -O - 'https://gist.githubusercontent.com/hsur/def9441a32a0a11d68daf57d255b343d/raw/a7763d2ef963a5cdb87a433cfd95ce7c8d8de8b7/Setup%2520Sapid%2520(%2520for%2520WSL%2520Ubuntu%252018.04)' | sudo bash -
# CX-Checker のセットアップ
wget -O - 'https://gist.githubusercontent.com/hsur/19ad681df53efaf0a8c9658c5e349222/raw/ec337d805fe0528de79f868bb0b82bfaf894bfa7/CX-Checker%2520Example%2520(%2520for%2520WSL%2520Ubuntu%252018.04)' | bash -
セットアップ後に、サンプルの実行をしてみると以下のような感じになります。
一番下の部分が、CX-Checker による goto 文に対する警告の出力結果です。
$ source /usr/local/Sapid/lib/SetUp.sh
$ make
gcc -O2 main.c -o myprog
$ ./myprog
bar
$ make cxc
sdb4 -O2 main.c -o myprog
Sapid: mkPmodel: File name "main.i".
Sapid: mkPmodel: Writing P-model database.
Sapid: mkPmodel: spdMkdirHier(): "SDB/PSDB/8388609": Making directory.
Sapid: sdbin4: spdMkdirHier(): "SDB/ISDB/8388609": Making directory.
Sapid: sdblink5: Optimizing.
Sapid: sdblink5: Making relative offset.
Sapid: sdblink5: Optimize declaration.
Sapid: fixSDB: Fix bug-0059.
Sapid: psdblink: Program name "myprog".
spdMkCXModel -t -sdbD SDB
Sapid: mkCXSub: spdMkdirHier(): "SDB/SPEC": Making directory.
Error: spdMkCXTypeInfos: unknown_declarator_sort: ident_id: 33554562 declarator_id:25165969
Warning: spdMkCXTypeInfos: outputEnum: identifier: SPD_NON_ID type_id: 83886098
Warning: spdMkCXTypeInfos: outputArray: identifier: SPD_NON_ID type_id: 83886105
Error: spdMkCXTypeInfos: unknown_declarator_sort: ident_id: 33554557 declarator_id:25165965
Warning: spdMkCXTypeInfos: outputStruct: identifier: SPD_NON_ID type_id: 83886097
Warning: spdMkCXTypeInfos: outputArray: identifier: SPD_NON_ID type_id: 83886093
Error: spdMkCXTypeInfos: unknown_declarator_sort: ident_id: 33554565 declarator_id:25165971
Warning: spdMkCXTypeInfos: outputStruct: identifier: SPD_NON_ID type_id: 83886100
Error: spdMkCXTypeInfos: unknown_declarator_sort: ident_id: 33554552 declarator_id:25165961
Warning: spdMkCXTypeInfos: unknown_type_sort:83886096 10
Warning: spdMkCXTypeInfos: outputArray: identifier: SPD_NON_ID type_id: 83886103
Warning: spdMkCXTypeInfos: outputArray: identifier: SPD_NON_ID type_id: 83886225
java org.sapid.checker.main.Main main.c default.xml
File:main.c, Id: null, Level: 5, Line: 4 4, Column: 2 6, Offset: 35, Length: 4, Message: misra-56
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10784
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(111992)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110622)
3 . 年次の人間ドックへ(110253)
4 . 2023 年分の確定申告完了!(1つめ)(109797)
5 . 三菱鉛筆がラミーを買収(109697)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110622)
3 . 年次の人間ドックへ(110253)
4 . 2023 年分の確定申告完了!(1つめ)(109797)
5 . 三菱鉛筆がラミーを買収(109697)
cles::blogについて
Referrers