我想将包含文件的名称作为编译器参数传递,以便我可以修改大量配置参数.但是,我的C++构建是通过类似进程的makefile来删除传递给编译器和预处理器的参数的引号.我希望做一些相当于的事情
#ifndef FILE_ARG
// defaults
#else
#include "FILE_ARG"
#endif
Run Code Online (Sandbox Code Playgroud)
使用我的命令行包括-DFILE_ARG = foo.h.这当然不起作用,因为预处理器不翻译FILE_ARG.
我试过了
#define QUOTE(x) #x
#include QUOTE(FILE_ARG)
Run Code Online (Sandbox Code Playgroud)
由于同样的原因不起作用.
出于脚本原因,我宁愿在命令行上执行此操作,也不要在相应的例程中编辑包含行.有什么办法吗?