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