有没有办法将 2 个字符串文字连接起来形成一个包含路径?
代码 stub :
#define INCLUDE_DIR "/include"
#include INCLUDE_DIR "/dummy.h"
看this question ,答案指向不同的方向(编译器命令行)。提到here这似乎是不可能的,但我想知道这个话题是否已经足够挖掘了。
(我确实有一个与之相关的用例,请将您的答案/评论集中在这个问题上。)
最佳答案
我不确定这是否正是您想要的,但无论如何。
#define DECORATE(x) <x>
#define MAKE_PATH(root, file) DECORATE(root file)
#define SYS_DIR(file) MAKE_PATH(sys/, file)
#define ARPA_DIR(file) MAKE_PATH(arpa/, file)
#include SYS_DIR(types.h)
#include SYS_DIR(socket.h)
#include ARPA_DIR(inet.h)
注意,生成的文件名包含额外的空格 - <sys/ types.h>
,所以它可能不是一个交叉编译器解决方案。但至少对我来说,它适用于 GCC 4.8/4.9 上的 Linux 主机。
附:如果有人可以用另一个编译器检查这个片段会很好,例如MSVC。
关于c++ - 包含路径的字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39038867/