/usr/include/stdio.h:140: 在 `__gnuc_va_list' 之前解析错误

/usr/include/stdio.h:140: 在 `__gnuc_va_list' 之前解析错误

当尝试C在 SCO 中编译我的程序时(使用gcc),我不断收到此错误。

我在谷歌上查看了一下,发现了另一个论坛:Linux问题,那家伙和我遇到了完全相同的问题。所以我尝试了他的解决方案,即在文件顶部添加一行program.c

#include "err.h"

我再次尝试编译,现在我得到一行:

program.c:5: err.h: No such file or directory
  • 我需要添加/安装才能获取该文件吗?
  • 该文件将位于我的文件系统中的什么位置?

提前致谢。

编辑

vi hello.c:

/* Hello World program */

#include<stdio.h>

main()
{
    printf("Hello World");

}

gcc -v hello.c:

Reading specs from /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Asystem(svr3) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX -D_STRICT_NAMES -D_SCO_XPG_VERS=4 -D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT -D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX -D_SCO_ELF -D_SCO_C_DIALECT=1 hello.c /usr/tmp/cc1HX7yg.i
GNU CPP version 2.95.2 19991024 (release) (i386, SCO OpenServer 5 Syntax)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/../../../../i386-pc-sco3.2v5.0.5/include
 /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/2.95.2/cc1 /usr/tmp/cc1HX7yg.i -quiet -dumpbase hello.c -version -o /usr/tmp/cc4HAEHq.s
GNU C version 2.95.2 19991024 (release) (i386-pc-sco3.2v5.0.5) compiled by GNU C version  2.95.2 19991024 (release).
In file included from hello.c:3:
 /usr/include/stdio.h:140: parse error before `__gnuc_va_list'
 /usr/include/stdio.h:140: parse error before `__gnuc_va_list'
 /usr/include/stdio.h:140: parse error before `__gnuc_va_list'

答案1

C/C++你有#include ""and#include <>时,当你使用""它意味着你向编译器引入你的头文件,所以你需要-I在编译时如:

gcc -I. -I../Includes program.c

-I获取一个参数作为包含文件的路径,当您使用stdio或 时stdlib,它们默认安装在gcc路径中并引入到您的gcc.

相关内容