看板mud
标 题Re: [问题] 请问编译MudOS
发信站交大资工凤凰城资讯站 (Wed Apr 6 18:45:01 2005)
转信站ptt!ctu-reader!ctu-peer!news.nctu!news.csie.ncyu!news.cna.ccu!netnews.
※ 引述《[email protected] (sam)》之铭言:
> ※ 引述《[email protected] (汀)》之铭言:
> : 可以说是你的 gcc 版本太新,而 MudOS 又年久失修无人维护的关系。
> : 你需要具备一点 C 语言知识,才能完全正确无误的解决这个问题,
> : 简单说,你可以将 MudOS 原始码中你认为会编译到的地方,
> : 将 <varargs.h> 改成 <stdarg.h> 即可。
> : varargs.h 这个 header file 已经被 ISO C 遗弃很久了。
> 请问一下喔
> 这样的话我是只要把所有的.c file 里有 include 到 <varargs.h>
> 直接改成 <stdarg.h> 就好了吗
其实是要某些 #ifdef 的条件下才需要改成 <stdarg.h>,
直接全改也是可以,但是拿到其它环境不见得能编得过。
> 还是说里面的code 写法也要改呢?
> 也就是按照varargs.h的语意 改写成stdarg.h 的格式. 是这样吗?
有一些 macro 的用法改变了,
如果碰到 error 要自己有办法看懂而且更正...
另外新的 ISO C 不准 ... 这个省略符号出现在第一个参数,
前面至少要有一个普通参数,要是碰到的话也要会更正。
void foo(...); // 这样不行
void foo(char *, ...); // 要自己知道第一个参数的 type 把它抽出来...
<varargs.h> 的问题也发生在许多台湾老旧的 bbs source code 里。
--
※ Origin: 交大资工凤凰城资讯站 <bbs.csie.nctu.edu.tw>
◆ From: 218-171-140-189.dynamic.hinet.net