首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/usr/include/stdio.h:140:在`__gnuc_va_list之前解析错误

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

Unix & Linux用户
提问于 2012-08-16 14:37:08
回答 1查看 2.1K关注 0票数 2

当我试图在SCO中编译我的C程序(使用gcc)时,我一直收到这个错误。

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

代码语言:javascript
复制
#include "err.h"

我又试了一次编译,现在我又得到了一行:

代码语言:javascript
复制
program.c:5: err.h: No such file or directory
  • 需要添加/安装才能获得该文件吗?
  • 这个文件在我的文件系统里会在哪里?

提前谢谢。

编辑

vi hello.c

代码语言:javascript
复制
/* Hello World program */

#include<stdio.h>

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

}

gcc -v hello.c

代码语言:javascript
复制
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'
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2012-08-16 14:43:53

C/C++中有#include ""#include <>,当使用""时,意味着将头文件引入编译器,因此需要在编译时使用-I,例如:

代码语言:javascript
复制
gcc -I. -I../Includes program.c

-I获取参数作为包含文件的路径,当使用stdiostdlib时,它们默认安装在gcc路径中,并引入到gcc中。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/45629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档