Tôi đang tìm cách triển khai Cây lai (không quan trọng) và tìm một cây "cũ" here.Làm thế nào để chạy chương trình được viết cho trình biên dịch cũ?
Tác giả cho biết họ đã cố gắng mã này trên nền tảng SUN Sparc (chạy Solaris 2,6) và với gcc-2.8.1 biên dịch. Và môi trường của tôi là phiên bản gcc 4.4.3 (Ubuntu 10.10).
Vấn đề là: tôi chạy "làm" với makefile ông cung cấp, nhưng nó mang lại cho tôi rất nhiều thông báo lỗi như sau:
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
Tôi biết tôi cần phải sửa đổi mã souce để đồng ý với trình biên dịch hiện đại, chẳng hạn như thay đổi vector.h
thành vector
. Nhưng tôi thấy nó vô tận. Vì vậy, câu hỏi của tôi là: có bất kỳ phương pháp convienent để chạy chương trình này, không có vấn đề tự động chuyển đổi mã này thành "phong cách hiện đại" hoặc sử dụng một trình biên dịch "kiểu cũ" độc lập?
Mọi đề xuất?
=== Cập nhật: ===
Cảm ơn tất cả các bạn, tôi cài đặt gcc2.8.1 trong một thư mục khác nhau sử dụng --prefix=/usr/local/gcc-2.8.1
và sửa đổi các "Makefile" để sử dụng cũ phiên bản này gcc (/usr/local/gcc-2.8.1/bin/gcc
). Nhưng khi tôi chạy "làm cho", nó vẫn mang lại cho tôi lỗi không tìm các tiêu đề:
/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
Sau đó, tôi đã cố gắng để tìm thấy những người đứng đầu trong /usr/local/gcc-2.8.1 sử dụng find /usr/local/gcc-2.8.1 -name "*vector*"
, nhưng có gì .
Vậy những đầu này cho gcc phiên bản cũ ở đâu?
Ông đặc biệt yêu cầu một giải pháp khác ngoài đổi tên các tiêu đề. –
Ngoài ra, đổi tên tiêu đề thậm chí không ở gần cuối tiêu đề. Nếu bạn đi theo lộ trình đó, bạn cũng phải lo lắng về các không gian tên - '' đặt mọi thứ trong 'std', ví dụ, trong khi' 'thì không. –
cHao