关于从SCO UNIX移植C程序到SUSE LINUX的问题

发布于 2022-09-30 07:36:27 字数 968 浏览 8 评论 0

前些日子,我将我原来在SCO UNIX下下好的程序移植到SUSE LINUX10,在编译时提示一些头文件没有,经过查找也没有找到(开发资源包已经安装了的)。make时出现的问题如下:
......
/usr/lib/gcc-lib/i586-suse-linux/3.3.1/include/varargs.h:4:2: #error  "GCC no longer implements <varargs.h>."

/usr/lib/gcc-lib/i586-suse-linux/3.3.1/include/varargs.h:5:2: #error  "Revise your code to use <stdarg.h>."

lib_tparm.c:131: error: parse error before "va_dcl"

lib_tparm.c:132: error: syntax error before '{' token

lib_tparm.c:146: warning: parameter names (without types) in function declaration

lib_tparm.c:146: warning: data definition has no type or storage class

lib_tparm.c:147: error: conflicting types for `string'

lib_tparm.c:134: error: previous declaration of `string'

lib_tparm.c:147: error: `parms' undeclared here (not in a function)
......
特向各位高手请教,万分感谢!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

涙—继续流 2022-10-07 07:36:27

头两行已经给你说得很清楚了,修改源代码!

隔岸观火 2022-10-07 07:36:27

谢谢回复,关键是对应的头文件如何替换,应该有与varargs.h相匹配的h文件吧?

一瞬间的火花 2022-10-07 07:36:27

关注!!

错々过的事 2022-10-07 07:36:27

原帖由 小雨飞 于 2005-12-7 10:00 发表
谢谢回复,关键是对应的头文件如何替换,应该有与varargs.h相匹配的h文件吧?

Revise your code to use <stdarg.h>

携君以终年 2022-10-07 07:36:27

可能在ansidecl.h中

幼儿园老大 2022-10-07 07:36:27

变参引起的,linux不支持老式的变参
void fn(va_alist)
va_dcl
的定义方式,我也遇到过同样的问题,没有找到好的解决方法,可能跟gcc的版本有关系,我当时是把变参修改成标准C的定义模式
void fu(char *fmt,....)

[ 本帖最后由 cromay 于 2006-10-9 10:31 编辑 ]

蓝戈者 2022-10-07 07:36:27

#include <varargs.h> 修改为
#include <stdarg.h>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文