atomでc++の設定(linter-gccやatom beutify) - 8月 25, 2018 こんにちは、ぐぐりら(@guglilac)です。 ## コンパイルできるのに静的コード解析にひっかかってた vectorの配列を作りたいと思ってこんなコードを書いたら、atomのlinterさまに怒られてしまいました。 ```c++:hoge.cpp int N,M; std::cin >> N >> M; std::vector D[N]; ``` `D[N]`のところを3とかに変更すると赤い波線が消えます。 また`int D[N]`に変えても怒られなくなります。 vectorの配列の長さを文字で与えられない、そんなことある?とおもってatomに怒られながらもコンパイルしてみると、あっさり通りました。 ``` g++ hoge.cpp --std=c++14 ``` ## linter-gcc 気づいたら、atomのc++のlinterパッケージとして`linter-clang`をつかっていたみたいです。 よくわからないけど、コンパイラとしてgccを使うようにしているので、clangで静的コード解析されると gccだとコンパイルできるのに赤く表示されたり、逆にコンパイルできないのにチェックされなかったりしてしまうので、困ります。 デフォルトでclangの方をつかってチェックしているみたいだったので、gcc用のlinterパッケージを使うようにしてみました。 atomのインストール済みパッケージのところから、 `linter-clang`を無効に。 で、かわりにlinter-gccをインストール。 僕はlinter-gccに設定されているデフォルトのgcc executable pathにgccがいなくてエラーが出ていたので、 linter-gccの設定画面にいって、gcc executable pathに自分のgccのパスを入れました。 パスの調べ方は `which gcc` でいけます。 ## atom-beutify 余談ですが、せっかくなのでファイル保存時に自動で整形するようにもしました。 atom-beautifyの設定画面から、C++の欄のbeautify on saveにチェックを入れて完了です。 ## 追記 linter-gccに変えたらいくつか困ったことになりました。 それらの対処法も載せておきます。 ### コードまちがってないのにlinter-gccがエラーだしてくる ``` unable to open output file 'main.o': 'Permission denied' ``` 的なエラーがでてくるようになってしまいました。 これを消すためには linter-gccの設定からc++flagのところに ``` -fsyntax-only ``` を追加すれば消えました。 ### インデントが深すぎ atom-beautifyしたらかなり深いインデントに整形されてしまいました。 よみづらい。 ということで、整形のフォーマットを指定します。 atom-beautifyの設定からc++の項目にいき、default beautifierを`clang-format`に変更。 プロジェクトのルートディレクトリに`.clang-format`を作成。 僕は以下のように書きました。 いろいろ他にも細かい設定ができるそうです。 ```:.clang-format Language: Cpp IndentWidth: 4 ``` 深すぎずいい感じのインデントにできました。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿