小编Jon*_*man的帖子

在C++预处理器中为参数添加引号

我想将包含文件的名称作为编译器参数传递,以便我可以修改大量配置参数.但是,我的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)

由于同样的原因不起作用.

出于脚本原因,我宁愿在命令行上执行此操作,也不要在相应的例程中编辑包含行.有什么办法吗?

c++ c-preprocessor double-quotes

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

c-preprocessor ×1

double-quotes ×1