是否可以使C预处理器调用外部脚本

时间:2015-11-25 13:06:25

标签: c-preprocessor

是否可以使C预处理器(cpp)调用外部脚本?例如:

$ ./snmp 
C3750
$ cat test
switch model:
#script snmp /* starts an external bash script named snmp */
$ cpp -P < test


switch model:
C3750
$ 

1 个答案:

答案 0 :(得分:1)

您可以自由编写Makefile或其他调用脚本的自动构建系统;您可以使用-D选项(对于gcc / clang / etc。)或等效文件将脚本中的信息提供给源文件。但是除了读取#include指令的文件之外,预处理器本身独立于任何操作系统接口。

例如,您可以使用以下内容编译程序:

gcc -DSWITCH_MODEL="$(./snmp)" test.c -o test

(当然,你可能想要其他选择)。这将导致预处理程序变量SWITCH_MODEL#define&#39; d为C3750(假设snmp脚本的输出)。