GCC 诊断和标准输入

问题描述 投票:0回答:1

我通过 stdin 将代码传输到 gcc,如下所示:

gcc -xc -o output - <<< ...

但是,诊断的格式与编译文件时的格式不同。具体来说,缺少的是指向错误所在位置的插入符号 (^) 以及整行。有错误的行号和位置,但我想打印整行,并带有插入符号。

是否有一个选项可以使诊断格式与编译文件时相同(当然,使用

<stdin>
代替文件名)?

如果可能的话,我想避免使用临时文件。

c gcc stdin diagnostics
1个回答
0
投票

不能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.

© www.soinside.com 2019 - 2024. All rights reserved.