从shell或类shell程序调用预处理器
正如标题中提到的,我想从shell调用预处理器 让我澄清一下: 假设我必须为Linux中的命令patch调用预处理器,比如:从shell或类shell程序调用预处理器,shell,command,preprocessor,patch,Shell,Command,Preprocessor,Patch,正如标题中提到的,我想从shell调用预处理器 让我澄清一下: 假设我必须为Linux中的命令patch调用预处理器,比如: patch -p1 -D `"{what and how should i write here }"` < patch.patch patch-p1-D`{我应该在这里写什么和如何写}`修补程序 $patch-DPRINTF_TO_put-i patch-详细 隐马尔可夫模型。。。在我看来,这是一个统一的差异。。。 在此之前的案文是: -------------
patch -p1 -D `"{what and how should i write here }"` < patch.patch
patch-p1-D`{我应该在这里写什么和如何写}`
Patch命令有一个选项-D
,我可以在其中定义预处理器(据我所知)。我试着在谷歌上搜索,但只有一个我不能正确理解。
请给我举个例子(或适当的参考资料)
patch
的-D
选项意味着对补丁文件所做的更改将被#ifndef X
/#else
/endif
如果X
是您指定为-D
选项的参数
例如:
$ cat file-1.c
#include <stdio.h>
int main(void)
{
printf("Hello world\n");
return 0;
}
$ cat file-2.c
#include <stdio.h>
int main(void)
{
puts("Hello world");
return 0;
}
$ diff -u file-1.c file-2.c > patch
$ patch -DPRINTF_TO_PUTS -i patch --verbose
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- file-1.c 2013-02-01 00:33:01.000000000 -0800
|+++ file-2.c 2013-02-01 00:33:17.000000000 -0800
--------------------------
Patching file file-1.c using Plan A...
Hunk #1 succeeded at 2.
done
$ file-1.c
#include <stdio.h>
int main(void)
{
#ifndef PRINTF_TO_PUTS
printf("Hello world\n");
#else
puts("Hello world");
#endif
return 0;
}
$
$cat file-1.c
#包括
内部主(空)
{
printf(“Hello world\n”);
返回0;
}
$cat file-2.c
#包括
内部主(空)
{
puts(“你好世界”);
返回0;
}
$diff-u file-1.c file-2.c>修补程序
$patch-DPRINTF_TO_put-i patch-详细
隐马尔可夫模型。。。在我看来,这是一个统一的差异。。。
在此之前的案文是:
--------------------------
|---文件-1.c 2013-02-01 00:33:01.000000000-0800
|+++文件-2.c 2013-02-01 00:33:17.000000000-0800
--------------------------
正在使用计划A修补文件file-1.c。。。
大块头1在2岁时成功了。
完成
$file-1.c
#包括
内部主(空)
{
#ifndef PRINTF_至_PUTS
printf(“Hello world\n”);
#否则
puts(“你好世界”);
#恩迪夫
返回0;
}
$
因此,要回答您的问题:
补丁
命令行的-D
之后放置一个有效的C标识符所有这些都不会从命令行调用C预处理器。如果需要这样做,请在系统上查找程序
cpp
。如果你在任何地方都找不到cpp
,你可能会调用gcc-E
。你是什么意思?使用-D
作为选项的任何其他命令?