Я ищу реализацию гибридного дерева (не важно) и нахожу "старый" здесь .
Автор сказал, что он пробовал этот код на платформе SUN Sparc (под управлением Solaris 2.6 ) и с компилятором gcc-2.8.1 . И моя среда gcc версия 4.4.3 ( Ubuntu 10.10 ).
Проблема в следующем:
Я запускаю «make» с make-файлом, который он предоставляет, но он выдает мне много сообщений об ошибках следующим образом:
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
Я знаю, что мне нужно изменить код souce, чтобы он соответствовал компилятору morden, например, изменив vector.h
на vector
. Но я считаю, что это просто бесконечно.
Итак, мой вопрос: есть ли какой-нибудь удобный метод для запуска этой программы, независимо от того, автоматически ли он конвертирует этот код в «современный стиль» или использует автономный компилятор «старого стиля»?
Есть предложения?
=== Обновление: ===
Спасибо всем, я установил gcc2.8.1 в другой каталог, используя --prefix=/usr/local/gcc-2.8.1
и изменил "makefile", чтобы использовать этот gcc старой версии (/usr/local/gcc-2.8.1/bin/gcc
). Но когда я запускаю команду «make», она все равно выдает ошибки, связанные с отсутствием поиска заголовков:
/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
Затем я попытался найти эти головы в /usr/local/gcc-2.8.1, используя find /usr/local/gcc-2.8.1 -name "*vector*"
, но ничего не получил.
Так, где эти головы для старой версии gcc?