:-1: error: collect2: ld returned 1 exit status, СПАСИТЕ ОТ ДУРДОМА И СУИЦИДА |
Здравствуйте, гость ( Вход | Регистрация )
:-1: error: collect2: ld returned 1 exit status, СПАСИТЕ ОТ ДУРДОМА И СУИЦИДА |
ЙаМайскЫйПчОЛ |
14.10.2009, 19:12
Сообщение
#1
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Доброго времени суток...
Товарищи, собратья по КуТэ... вопрос не совсем в КуТэ но я пишу под QtSDK НЕ ПОНИМАЮ В ЧЕМ ОШИБКА!!!! ОБЪЯСНИТЕ ПОЖАЛУЙСТА!!!! Заранее извиняюсь за название классов , но они отражают суть проблеммы... и мое к ней отношение вот хедер CODE #ifndef ZAELO_H #define ZAELO_H template <class C> class Zaelo { public: virtual ~Zaelo(); protected: Zaelo(int a = 0); private: int a_; }; template <class C> class Ox : public Zaelo<C> { public: Ox(int a = 0); virtual ~Ox(); }; #endif // ZAELO_H вот cpp CODE #include "Zaelo.h" template <class C> Zaelo<C>::Zaelo(int a) : a_(a) { } template <class C> Zaelo<C>::~Zaelo() { } template <class C> Ox<C>::Ox(int a) : Zaelo<C>(a) { } template <class C> Ox<C>::~Ox() { } а это main CODE #include <QtCore/QCoreApplication> #include "Zaelo.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Ox<int> b; return a.exec(); } так вот эта штука выдает при компиляции C:/PROJECTS/Zaebalo/main.cpp:7: undefined reference to `Ox<int>::Ox(int)' C:/PROJECTS/Zaebalo/main.cpp:8: undefined reference to `Ox<int>::~Ox()' C:/PROJECTS/Zaebalo/main.cpp:8: undefined reference to `Ox<int>::~Ox()' :-1: error: collect2: ld returned 1 exit status внимание знатоки... вопрос ... "ПОЧЕМУ" если перенести код из cpp в h то все работает, если написать inline функции в хедере то тоже работает.. ПОЖАЛУЙСТА ОБЪЯСНИТЕ ПОЧЕМУ П.С. это искренний крик души П.С.С. толи лыжи не едут... толи я увлекся проектированием вместо кодинга... Сообщение отредактировал ЙаМайскЫйПчОЛ - 14.10.2009, 20:47 |
|
|
DIMEDROLL |
14.10.2009, 20:48
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
Какой компилятор?
Ответ прост, им не поддерживается такая компиляция когда описание шаблона в хедере, а реализация в срр. Я со студией тоже так когда то мучался Знаю что какой то последний компилятор поддерживает такую компиляцию, непомню только название. ...Браузнул, Comeau, насколько я помню. Он же и больше всего соответсвует стандарту, но не бесплатен. Выход: пиши реализацию в хедере |
|
|
Текстовая версия | Сейчас: 26.11.2024, 17:26 |