Я пытаюсь скомпилировать систему с именем SNoW в Ubuntu, используя g ++ 4.4.5.Похоже, что программное обеспечение было в последний раз обновлено для g ++ 3.1.4, так как я нашел переключатель внутри одного из файлов, который проверил его, и самый высокий регистр был 3.1.4 +.
Мне пришлось обновить несколько заголовков, чтобы избежать ошибок компиляции ... cstring вместо строки и тому подобное.Теперь я застрял на неопределенных ссылочных ошибках, где неопределенная ссылка относится к функции в заголовке, который предоставляется.
Ошибка заключается в следующем:
Main.o: In function `ShowUsage(char const*)':
Main.cpp:(.text+0x140e): undefined reference to `Fex::logo'
... что происходит из этого в Main.cpp:
cerr << Fex::logo[0] << endl;
Где Fex.h включен вверхуMain.cpp, и один из открытых членов класса Fex в Fex.h таков:
static const char * logo[];
Makefile для Main.o, таким образом:
fex : Main.o
$(CC) -O2 -o fex Main.o $(LINKFLAGS)
Main.o : Main.cpp FexGlobalParams.h Fex.h libfex.a
$(CC) $(CCFLAGS) -o Main.o Main.cpp
Я пытался установить CC на самую раннюю версию g ++ в репозиториях (4.3) и переупорядочить заголовки в Makefile, но безуспешно, и я не уверен, что делать на этом этапе.Я не могу найти существующую копию g ++ 3.1, и создатели программного обеспечения совершенно уверены, что она скомпилирована под Linux в прошлый раз, когда они работали над ней.
Кто-нибудь замечает, что может быть не так, или есть какие-то предложения, чтобы попробовать?