- コンパイルに make, clangを使う
- ユニットテストに、cpputestを使う
- nvimの開発環境設定に, coc-clangd, clang-format, compiledbを使う
- nvimにcocをインストールしている前提
- coc-clangdをインストールする
compile_commands.json
が必要で、compiledbで作れる
- nvimのコマンドで、
:CocConfig
でcocの設定画面を開いて、下記を追加する。
"coc.preferences.formatOnSaveFiletypes": ["c"],
brew install clang-format
- .clang-formatというファイルをプロジェクトルートに配置
- 中身を下記のような感じにする
BasedOnStyle: Google
ColumnLimit: 0
IndentWidth: 2
Language: Cpp
Standard: Auto
UseTab: Never
- 上記設定が自動で読み込まれるので、ファイル保存時に上記設定でフォーマットされる。
- 上記でmakeと同時に、makeの設定内容に合わせてcompile_commnads.jsonが作成される
export CPPUTEST_HOME="$(brew --prefix cpputest)"
CPPFLAGS += -I$(CPPUTEST_HOME)/include
LDFLAGS = -L$(CPPUTEST_HOME)/lib -lCppUTest -lCppUTestExt
../bin/test/test: test.cpp
clang++ -o $@ $(CPPFLAGS) $(LDFLAGS) $^
-I
でヘッダファイルを探すフォルダを追加できる。
-I$(CPPUTEST_HOME)/include
によって、cpputestのヘッダファイルを追加している。
-L$(CPPUTEST_HOME)/lib
で、ライブラリのあるフォルダを追加できる。
-lCppUTest
は、libCppUTestをリンクするってこと。
- ヘッダファイルの読み込みがある部分しかリンクされないらしい。
- だからライブラリ読み込む前にヘッダファイルの読み込みしているコードを先に持ってこないといけないらしい。