【发布时间】:2017-06-02 04:36:06
【问题描述】:
我想在编译时将 C 包含文件的名称指定为 C 标志。
例如
#include MY_INCLUDE_FILE
int main(int argc, const char * argv[]) {...}
将被预处理器扩展为
#include "some_incfile.h"
int main(int argc, const char * argv[]) {...}
做这样的事情
gcc -DMY_INCLUDE_FILE="some_incfile.h" main.c
我曾尝试使用字符串化操作符 # 来展开,但只得到了诸如 error: expected "FILENAME" or <FILENAME> 之类的错误
这甚至可能吗? -D define 不是完全必要的,重要的是可以从 gcc 命令行设置包含文件名
【问题讨论】:
-
思路不错,问题是引号的shell扩展
标签: c gcc compilation c-preprocessor