c++ - 为多平台和易于使用的项目组织文件
问题描述
几年前,我创建了一个 C++ 项目。我曾经使用 nano 编写代码,然后使用 Makefile 对其进行编译和链接。
我只是将所有文件放在一个目录中(包括 .cpp、.h 和 Makefile 本身)。
例如,我有一个单独的 inc.h 文件,它包含在每个单独的 .cpp 文件中,例如,我现在承认它不是很干净。
我想将它上传到 Github 以便任何想要使用它的人都可以访问它,问题是我似乎找不到任何关于如何安排文件的指南(因为有,例如,用于创建包在 R 中)。我尝试过使用 Code::Blocks 但我没有设法使项目工作,所以,
谁能给我指一个指南,解释如何正确组织 C++ 项目的代码和数据?
解决方案
C++ 本身没有任何关于如何组织项目文件的样式指南。这是使包管理器如此难以实现的众多小事之一。每个开发人员都选择他们自己的组织,所以如果它适合您,只需将其保存在一个文件夹中。如果您想尝试例如单独的头文件和 cpp 文件夹,互联网上有一些示例,可以在搜索类似于“makefile headers and source in separate directory”的内容时找到。
对于 makefile,您可能必须包含类似
# preprocessor flags
CPPFLAGS := -I[path-to-headers]
在里面调用编译器的行生成文件
推荐阅读
- django - 是否可以在制作 DjangoModelFactory 时获取工厂男孩 Faker 对象的值以用于另一个字段
- css - CSS - 使用 max 为特定长度的 minmax 时,网格自动调整不起作用
- html - Flexbox 在增加项目宽度的同时保持包裹点
- typescript - 如何从 TypeScript 中的字符串值数组推断类型?
- python - Pydantic:导出具有不同编码的相同类型的字段
- php - 使用 Jenkins Pipeline 将 PHP 部署到 Azure Web App 时出错
- macos - 找到了 Libfreetype.6.dylib,但架构错误
- r - tidyr::pivot_longer 合并 2 组列,每组具有不同的名称前缀
- javascript - 在 javascript azure 函数中使用 Azure 的 azcopy 工具
- netty - 是否有关于 netty 基准的详细概述以及它们在做什么?