组织源代码(C++)
Organizing source (C++)
对于一个科学项目,我有一个模板化的分析工具(模块a),它使用一种类型的统计测试(模块B)。分析工具(模块A)用于两种类型的问题(模块C和D)。模块C和D定义了用于从不同文件类型进行序列化的函数。
所有模块(A、B、C和D)都使用公共实用程序(模块E)。每个模块由几个文件组成。我真的很想组织模块,这样每个模块都有自己的名称空间,并且源文件位于不同的目录中(即强调组织中的模块性)。
在每个文件中定义名称空间并不重要。但我希望使用某种源树,其中每个模块的#include文件将在其自己的命名空间中包括所有其他模块。
我真的不确定有什么好方法来组织这件事。我应该简单地为每个模块使用一个文件夹,并使用相对路径#include吗?如果每个模块都有自己的git存储库,并编译成一个库文件,该文件位于指定的UNIX文件夹中(这需要真正安装才能运行项目)。
现在我正在使用gcc-4.7、make和emacs。
你知道如何组织这些文件以实现模块化吗?
请原谅我,并建议是否有其他StackOverflow附属公司更适合这个问题。我的项目正在运行,但它比需要的要混乱得多!
但我希望使用某种源树,其中每个模块的#include文件将在其自己的命名空间中包括所有其他文件。
这是错误的方法。即使A在模块级别上依赖于E,也不一定意味着A内的所有组件都依赖于E内的所有部件,并且不应通过include强制执行。
Includes应该是明确的(包括你真正需要的一切)和精确的(不要包括任何你不依赖的东西)。
话虽如此,我会将代码组织在模块中,其中每个模块都有一个单独的目录。如果一个模块变得足够复杂,需要在子模块中进行拆分,那么您可以添加嵌套目录,但单个两级层次结构就足够了。
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- Qt Quick,如何更改 Ui 源代码?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何使用QT创建器获取网页源代码?
- 从源代码构建 gRPC C++
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- 如何在使用 LLVM 编译时获取部分源代码的二进制代码
- 如何在源代码中包含外部库的头文件?
- 如何查找 torch.bmm 的 c++ 源代码 pytorch.
- 是否有可能使用debug_info获取ELF文件的源代码?
- 为什么Qt必须从源代码构建以进行交叉编译?