我已经回顾了问题 如何正确使用头文件和 C + + # 包含语义,没有解决这个问题,也没有其他建议的索时,我打字的标题..。
如果有的话,写作的好处是什么:
#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
”指令来查找头文件,但是灵活性的损失,以及在子目录中编译的复杂性等似乎超过了好处。
我是不是忽略了一个好处?
谢谢你的建议。我认为大家的共识是,使用这种符号没有任何重大好处”。."被我忽略了。一般来说,我喜欢“ where/header.h”符号; 我确实在新项目中使用它。我正在研究的这个绝对不是新的。
其中一个问题是有各种各样的头,通常带有前缀,如 rspqr.h
、 rsabc.h
、 rsdef.h
、 rsxyz.h
。这些都与 rsmp
目录中的代码有关,但是一些头在 rsmp
中,另一些头在中央包含目录中,该目录中没有诸如 rsmp
这样的子目录。(对代码的其他各个区域重复执行; 有多个位置的头,其他位代码随机需要这些头。)移动东西是一个主要问题,因为这些年来代码变得非常复杂。而且在提供 -I
选项的情况下,makefile 并不一致。总而言之,这是一个几十年来不那么善意的忽视的悲惨故事。在不打破任何东西的情况下修复这一切将是一项漫长而乏味的工作。