|
46
|
| Olivier Lalonde Danny · 技术社区 · 16 年前 |
|
|
1
56
分离.h文件的.cpp并不总是一个好的解决方案。通常,当它用作库(include中的公共头和带有源代码的私有头)时,我会将它们分开。 如果它是一个库,那么这个结构就可以了。
如果是申请
使用标志-i$(project_base)/include指定编译的包含路径 如果这是一个大项目,使用类似 autoconf/自动生成 或 小精灵 建造一切。有利于发展。 |
|
|
2
12
如果您有许多源文件,那么最好进一步细分源目录。例如,一个子目录用于应用程序的核心功能,一个子目录用于gui,等等。
这样做也会迫使您避免“模块”之间不必要的关系,这是良好和可重用代码的先决条件。 |
|
|
3
12
没有特定或必需的目录结构。 你可以随意设置。你的问题很容易解决。只需指示makefile查找子目录或将编译的对象放入子目录,而不只是使用当前目录。 您只需在makefile路径中使用:
替换为
所以它会检查目录中的二进制文件
有多种方法可以添加/删除/修改源文件和对象文件的路径。 看一看 gnu make manual ,具体章节 8.3文件名功能 ,之前的那个 8.2字符串替换和分析功能 。 你可以这样做: 从当前目录中的源文件列表获取对象列表:
输出:
如果二进制对象在子目录中
输出:
等等。 |
|
|
4
6
没有“好的目录结构”。选择一个你喜欢的结构并坚持下去。有些类似于将源文件(头文件和实现文件)放在
不过,我还没有听说有人将头文件和实现文件分成两个不同的目录。就我个人而言,我不太喜欢把文件分成目录。我通常将所有源代码放在一个目录中,所有文档放在另一个目录中。如果我仍然依赖好的搜索工具,就不需要复杂的目录结构。
make可以处理makefile所在目录与源目录不同的那种结构。唯一的问题是它将从makefile的目录中调用规则——编译器在编译某些子目录中的源代码时通常不会遇到问题。您不必在
|
|
|
5
3
如果你在读之前没看过 Recursive Make Considered Harmful . 简短版本: 尽管递归make这个习惯用法很常见,但它并不是最理想的,而且随着项目越来越大、越来越复杂,它会变得越来越糟糕。提出了一种替代方案。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |