我通过 stdin 将代码传输到 gcc,如下所示:
gcc -xc -o output - <<< ...
但是,诊断的格式与编译文件时的格式不同。具体来说,缺少的是指向错误所在位置的插入符号 (^) 以及整行。有错误的行号和位置,但我想打印整行,并带有插入符号。
是否有一个选项可以使诊断格式与编译文件时相同(当然,使用
<stdin>
代替文件名)?
如果可能的话,我想避免使用临时文件。
不能100%确定你想要什么,但我猜测以下行为就是你所要求/要求/寻找的
cat /tmp/kresimir.c
#include <stdio.h>
int main()
{
printf("hello Kresimir\n")
}
# pip the contents int gcc
$ cat /tmp/kresimir.c | gcc -xc -o /tmp/kresimir -
<stdin>:4:28: error: expected ';' after expression
printf("hello Kresimir\n")
^
;
1 error generated.
#
# and if using the 'normal' approach
#
$ gcc -xc -o /tmp/kresimir /tmp/kresimir.c
/tmp/kresimir.c:4:28: error: expected ';' after expression
printf("hello Kresimir\n")
^
;
1 error generated.