是否可以使C预处理器(cpp
)调用外部脚本?例如:
$ ./snmp
C3750
$ cat test
switch model:
#script snmp /* starts an external bash script named snmp */
$ cpp -P < test
switch model:
C3750
$
答案 0 :(得分:1)
您可以自由编写Makefile或其他调用脚本的自动构建系统;您可以使用-D
选项(对于gcc / clang / etc。)或等效文件将脚本中的信息提供给源文件。但是除了读取#include
指令的文件之外,预处理器本身独立于任何操作系统接口。
例如,您可以使用以下内容编译程序:
gcc -DSWITCH_MODEL="$(./snmp)" test.c -o test
(当然,你可能想要其他选择)。这将导致预处理程序变量SWITCH_MODEL
为#define
&#39; d为C3750
(假设snmp
脚本的输出)。