我已经审查了问题:如何正确使用include指令和C ++ #include语义,并且既没有解决这个问题,也没有解决SO在输入标题时建议的其他问题...
编写的好处(如果有)是什么:
#include "../include/someheader.h"
#include "../otherdir/another.h"
与仅使用纯文件名相比:
#include "someheader.h"
#include "another.h"
或不带' ..' 的相对名称:
#include "include/someheader.h"
#include "otherdir/another.h"
我看到的问题是:
您不能移动标题而不必担心哪些源文件包含它。
您最终可能会为依赖项和错误报告中的标头提供非常长的路径。我今天有一个与“ ../dir1/include/../../include/../dir2/../include/header.h”。
我看到的唯一优点是,尽管您不需要移动文件,但可能不必总是使用' -I'指令来查找标头就可以摆脱困境,但是却失去了灵活性,并且在sub-sub中进行编译非常复杂目录等似乎超过了收益。
那么,我是否忽视了好处?
感谢您的投入。我认为,共识是使用“ ..”这个符号并没有太大的好处。一般而言,我喜欢“ somewhere / header.h”表示法。我确实在新项目中使用了它。我正在研究的东西不是什么新东西。
其中一个问题是,有各种套头的,往往带有前缀,如rspqr.h,rsabc.h,rsdef.h,rsxyz.h。这些都与rsmp目录中的代码相关,但是某些标头位于其中,rsmp而其他标头位于中央的include目录中,该目录中没有诸如此类的子目录rsmp。(然后对代码的其他各个部分重复上述操作;在多个位置都有标头,而其他位的代码则随机需要。)随处移动内容是一个主要问题,因为多年来这些代码变得如此复杂。并且makefile在-I提供的选项中不一致。总而言之,这是一个数十年来不那么良性的忽视的悲惨故事。修复所有问题而不破坏任何东西将是一项漫长而乏味的工作。
白板的微信
月关宝盒
相关分类