我对编程还是个新手,所以我决定先用 C + + 创建一个简单的向量类。然而,我希望从一开始就养成良好的习惯,而不是试图在以后修改我的工作流程。
我目前只有两个文件 vector3.hpp
和 vector3.cpp
。这个项目将慢慢开始增长(使它更加一般的线性代数库) ,因为我变得更加熟悉一切,所以我想采用一个“标准”的项目布局,使生活更容易以后。因此,在四处查看之后,我找到了两种组织 hpp 和 cpp 文件的方法,第一种是:
project
└── src
├── vector3.hpp
└── vector3.cpp
第二个是:
project
├── inc
│ └── project
│ └── vector3.hpp
└── src
└── vector3.cpp
你有什么建议,为什么?
其次,我想使用 Google C + + 测试框架对我的代码进行单元测试,因为它看起来相当容易使用。您是否建议将这些代码与我的代码捆绑在一起,例如放在 inc/gtest
或 contrib/gtest
文件夹中?如果绑定,您建议使用 fuse_gtest_files.py
脚本来减少数量或文件,还是保持原样?如果没有捆绑,如何处理这个依赖项?
在编写测试时,这些测试通常是如何组织的?我想为每个类(例如 test_vector3.cpp
)创建一个 cpp 文件,但是所有文件都编译成一个二进制文件,这样它们就可以轻松地运行在一起了?
由于 gtest 库通常是使用 cmake 和 make 构建的,所以我认为我的项目也应该像这样构建?如果我决定使用以下项目布局:
├── CMakeLists.txt
├── contrib
│ └── gtest
│ ├── gtest-all.cc
│ └── gtest.h
├── docs
│ └── Doxyfile
├── inc
│ └── project
│ └── vector3.cpp
├── src
│ └── vector3.cpp
└── test
└── test_vector3.cpp
CMakeLists.txt
必须看起来如何,才能只构建库或库和测试?此外,我还看到了相当多的具有 build
和 bin
目录的项目。构建是否发生在构建目录中,然后二进制文件移到 bin 目录中?用于测试的二进制文件和库是否位于同一个位置?或者将其结构设计如下更为合理:
test
├── bin
├── build
└── src
└── test_vector3.cpp
我还想使用 doxygen 来记录我的代码。有没有可能让它自动运行 cmake 和 make?
很抱歉问了这么多问题,但是我还没有找到一本关于 C + + 的书能够满意地回答这类问题。