Re: [問題] 請問編譯MudOS
※ 引述《samruqo.bbs@ptt.cc (sam)》之銘言:
> ※ 引述《tinlans.bbs@bbs.csie.nctu.edu.tw (汀)》之銘言:
> : 可以說是你的 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
討論串 (同標題文章)
mud 近期熱門文章
13
23
PTT遊戲區 即時熱門文章
50
64