在开发Linux环境下cpp组件时,自己形成了一套模式框架,对于常规项目开发可以方便套用。
工具
- 编辑器:使用emacs,配置文件使用spacemacs
- 自动补全:使用spacemacs的两个layer:
auto-complete
、c/c++
。
1 2
| (auto-completion :variables auto-completion-enable-sort-by-usage t)
|
1 2 3 4 5 6
| (c-c++ :variables c-c++-default-mode-for-headers 'c++-mode c-c++-enable-clang-support t c-c++-enable-clang-format-on-save t c-c++-enable-google-newline t c-c++-enable-google-style t)
|
同时,针对项目来配置.clang_complete文件。
1 2 3 4 5 6 7 8
| -Wall -std=c++11 -Wc++-compat -I. -Ithird_party/googletest/include -Ithird_party/benchmark/include -Ithird_party/googletest -Ithird_party/abseil-cpp
|
- 自动跳转工具:使用ctags,配置spacemacs的
ctags
layer
1
| (gtags :disabled-for go clojure emacs-lisp javascript latex python shell-scripts)
|
- 代码格式化工具:使用clang-format,配置.clang-format文件
- 调试工具:GDB
- 项目代码编译管理工具:cmake
- 脚本工具:makefile
目录结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| . ├── CMakeLists.txt :cmake工程文件 ├── Makefile :构建管理文件 ├── .clang_complete :自动补全设置文件 ├── doc :文档目录 ├── README.md ├── out :构建编译编译目录 ├── src :项目代码目录 │ ├── CMakeLists.txt │ ├── .clang-format :代码格式化设置文件 └── third_party :第三方依赖目录 ├── abseil-cpp ├── benchmark ├── cctz ├── gflags ├── glog └── googletest
|
常用的第三方库