ハイブリッドツリー(重要ではない)の実装を探していて、「古い」ものを見つけるのはhereです。古いコンパイラ用のプログラムを実行するには?
著者は、彼らが(Solaris 2.6のを実行している)SUN SPARCプラットフォーム上とのgcc-2.8.1コンパイラでこのコードを試してみました。私の環境はgccバージョン4.4.3(Ubuntu 10.10)です。
問題がある: 私は彼が提供してメイクファイルを「作る」実行されますが、以下のように、それは私のエラーメッセージの多くを与える:
g++ -c Node.C
g++ -c DataNode.C
In file included from DataNode.h:18,
from DataNode.C:17:
Query.h:9:20: error: vector.h: No such file or directory
Query.h:10:19: error: stack.h: No such file or directory
Query.h:13:22: error: function.h: No such file or directory
Query.h:14:22: error: iostream.h: No such file or directory
DataNode.C:283:8: warning: extra tokens at end of #endif directive
In file included from DataNode.h:18,
from DataNode.C:17:
Query.h:29: warning: ‘typedef’ was ignored in this declaration
Query.h:44: warning: ‘typedef’ was ignored in this declaration
Query.h:86: error: expected initializer before ‘<’ token
Query.h:118: error: ISO C++ forbids declaration of ‘PQ’ with no type
Query.h:118: error: expected ‘;’ before ‘*’ token
Query.h:122: error: ISO C++ forbids declaration of ‘PQ’ with no type
Query.h:122: error: expected ‘;’ before ‘*’ token
Query.h:126: error: ISO C++ forbids declaration of ‘PQ’ with no type
Query.h:126: error: expected ‘;’ before ‘*’ token
Query.h:135: error: expected initializer before ‘<’ token
DataNode.C: In member function ‘void DataNode::DisconnectBranch(int)’:
DataNode.C:80: error: ‘memmove’ was not declared in this scope
make: *** [DataNode.o] Error 1
私は私がするように源泉コードを変更する必要があります知っています例えばvector.h
からvector
への変更など、mordenコンパイラに同意します。しかし、私はそれがただ無限であることがわかります。
私の質問は:このプログラムを実行するには、このコードを「現代風」に自動的に変換するか、スタンドアロンの「旧式」コンパイラを使用しても問題ありませんか?
提案がありますか?
=== 更新: ===
は私が--prefix=/usr/local/gcc-2.8.1
を使用して別のディレクトリにgcc2.8.1を設置し、この古いバージョンのgcc(/usr/local/gcc-2.8.1/bin/gcc
)を使用する「メイクファイル」を修正し、あなたのすべてをありがとうございます。しかし、私は「作る」を実行するとき、それはまだ私にヘッダが見つからないのエラーを与える:
/usr/local/gcc-2.8.1/bin/gcc -c DataNode.C
In file included from DataNode.h:18,
from DataNode.C:17:
Query.h:9: vector.h: No such file or directory
Query.h:10: stack.h: No such file or directory
Query.h:11: deque: No such file or directory
Query.h:12: algorithm: No such file or directory
Query.h:13: function.h: No such file or directory
Query.h:14: iostream.h: No such file or directory
make: *** [DataNode.o] Error 1
それから私はfind /usr/local/gcc-2.8.1 -name "*vector*"
を使用して/usr/local/gcc-2.8.1にこれらのヘッドを見つけることを試みたが、何も得ませんでした。
古いバージョンのgccの頭はどこにありますか?
彼は特にヘッダーの名前を変更する以外の解決策を求めました。 –
さらに、ヘッダーの名前を変更しても、ヘッダーの終わり近くにはありません。あなたがそのルートに行くならば、 ''は 'std'に全てを入れます。例えば、 ''はそうではありません。 –
cHao