2011-01-26 32 views
0

更新:我從http://ftp.ntct.edu.tw/Linux/ISO/Debian/3.0r2/得到了Debian 3.0r2的一個副本 這包含gcc 2.95.4,這是完美的。將它安裝在VirtualBox中,現在一切都與世界一致。 :)構建gcc-2.95.3在64位Ubuntu上使用9.10

ORIGINAL:

我試圖建立在我的機器上使用GCC 2.95.3的副本,我有一個非常艱難的時刻。

我購買了一本我經歷過的書,它是從2002年開始的。它希望我編譯許多示例以查看C編譯器提供的組件。本書使用gcc 2.95.3。我的系統上的gcc是4.x,更不用說64位了,所以程序集生成的外觀幾乎與本書中的例子一樣。

我已經試過一切,使gcc 2.95.3在我的機器上工作。我甚至使用VirtualBox安裝了較舊的32位Linux發行版,但不能讓我編譯它。

目前,我的機器上這裏是我在做什麼:

./configure --host=i386-amd-linux-gnu 
make 

它來臨時幾分鐘後,就與此出現:

make[2]: Entering directory `/home/twilson/Downloads/gcc-2.95.3/gcc/ch' 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include parse.c 
parse.c: In function ‘require’: 
parse.c:326: warning: format not a string literal and no format arguments 
parse.c: In function ‘expect’: 
parse.c:352: warning: format not a string literal and no format arguments 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include actions.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include except.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include grant.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include lang.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include tree.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include lex.c 
gcc -c -DIN_GCC -g -O2  -I. -I.. -I. -I./.. -I./../config -I./../../include decl.c 
decl.c: In function ‘start_struct’: 
decl.c:4451: error: argument ‘code’ doesn’t match prototype 
ch-tree.h:736: error: prototype declaration 
make[2]: *** [decl.o] Error 1 
make[2]: Leaving directory `/home/twilson/Downloads/gcc-2.95.3/gcc/ch' 
make[1]: *** [cc1chill] Error 2 
make[1]: Leaving directory `/home/twilson/Downloads/gcc-2.95.3/gcc' 
make: *** [all-gcc] Error 2 

似乎沒有不管我做什麼,總會有一個錯誤或另一個錯誤。這和我一直很接近(我假設,因爲這是編譯時間最長的一段時間沒有停止)。

我不是配置或製作方面的專家,或者使用較舊的軟件。我只做了很多年的網絡相關的東西,而且我很晚才進入這個低級別的遊戲。

有沒有人試圖最近做到這一點,併成功或知道爲什麼會發生這種情況?

感謝, 湯姆

+0

你真的想看到彙編輸出嗎? – Spaceghost 2011-01-27 02:50:32

回答

0

那麼,建設這樣一箇舊版本將是地獄,就更不用說了,很辛苦。我看到幾個選項:

  1. 使用較舊的GCC嘗試構建甚至較舊的GCC。 (類似於3.4.5會有更多工作的機會

  2. 使用Ubuntu軟件包的舊版本的Ubuntu,如Dapper's GCC 2.95。如果它沒有安裝,只需將它解壓到某個地方(應該很簡單,只是一定要安裝所有的依賴以同樣的方式。如果這不起作用,請嘗試使用虛擬機與一個老的Linux安裝。

1

有了正確的標誌,GCC將發出彙編的32位系統。根據代碼的複雜程度和閱讀彙編程序的經驗水平,2.95和4.x的輸出之間可能沒有太大的差別。也許值得考慮的是,它是否能夠幫助您不必修補她是編譯器的舊版本。

例如,下面將產生彙編代碼(在。S檔)i386的CPU的:

gcc yourfile.c -S -arch i386 

如果不這樣做你再看看這個網頁,規定了需要在64位主機上建立的gcc 2.95的步驟。 http://www.trevorpounds.com/blog/?p=111