SublimeLinterでたのしいC/C++
2016.05.04追記:おそらく古すぎて使えません
覚書
目的
SublimeTextで,C++のSyntax Errorをコンパイルせずに見つけたかった(AOJのため)ので,SublimeLinter-contrib-clangを,Windows7(64bit)上で使えるようにした.
手順1
http://elfcobe.hateblo.jp/entry/2014/02/01/001214
ここを見てMinGWとllvm/clangとMSYSを導入する.
まだこの段階ではclangでコンパイルすることはできない*1
手順2
Clangはインクルードファイルをフルで持っているわけではないっぽいので,gccのものを使う
1.gccとg++で適当な.cファイルを -v を付けてコンパイルする.
$ gcc -v test.c (中略) #include "..." search starts here: #include "..." search starts here: c:\mingw64\bin..\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\x86_64-w64-mingw32 (中略) End of search list (略)
g++でも同じことを行う.
2.これらをCPATHに設定する.~/.bashrcに,
CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++" CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/x86_64-w64-mingw32":$CPATH CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/include/backward":$CPATH CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/include":$CPATH CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/include-fixed":$CPATH CPATH="/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/include":$CPATH export CPATH
のように追記する.
この段階でMSYSを通じてclangでコンパイルが可能になる.ただしC++はclang++を使用する.
手順3
SublimeTextのPackageControlで「SublimeLinter」と「SublimeLinter-contrib-clang」をインストールする.
手順4
1. SublimeTextの「Preferences」→「Package Settings」→「SublimeLinter」→「Settings-User」をクリックし,以下のように記述する
{ "user": { "debug": true, "delay": 0.25, "error_color": "D02000", "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme", "gutter_theme_excludes": [], "lint_mode": "background", "linters": { "clang": { "@disable": false, "args": [], "excludes": [], "extra_flags": "", "include_dirs": [ // .bashrcに書いたパス ] } }, "mark_style": "outline", "no_column_highlights_line": false, "passive_warnings": false, "paths": { "linux": [], "osx": [], "windows": [] }, "python_paths": { "linux": [], "osx": [], "windows": [] }, "rc_search_limit": 3, "shell_timeout": 10, "show_errors_on_save": false, "show_marks_in_minimap": true, "syntax_map": { "html (django)": "html", "html (rails)": "html", "html 5": "html", "php": "html", "python django": "python" }, "warning_color": "DDB700", "wrap_find": true } }
たぶん"python_paths"はいらない.
2. SublimeTextを再起動
終了
困ったときはLinterをデバッグモードにして動かしてみると良い.
その際には,さっきのユーザー設定を開いて,
"linters": { "clang": { "@disable": false, "args": [], "excludes": [], "extra_flags": "", "include_dirs": [] } }
ここの"extra_frags"に"-v"を入れて,SublimeTextのコンソールを開くと,どこでエラーを吐いてるかわかる.
感想
Clangがまだあまり広まってないというか浸透しきっていないような感じ*2だったので,情報を探すのが大変だった.
linuxの文献しか出てこねえ
— Gedyra (@Gedyra) March 15, 2015
Hello World動かすのに3時間くらいかかった
— Gedyra (@Gedyra) March 15, 2015
しかし非常に便利なので対価としてかなり有益だったと思う.
あと"Clang"なのか"clang"なのかわからん.