Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > undefined reference to ~Destructor


Автор: Kappac 12.2.2011, 22:53
Доброго времени суток!
Ситуация:

class1.hpp:
Код

class Class1
{
Class1(param0, param1);
virtual ~Class1();
};


class1.cpp
Код

#include <class1.hpp>

Class1::Class1(param0, param1)
{
}

Class1::~Class1()
{
}


Эти файлы собираются в библиотеку с помощью g++ 4.4.4. Сборка происходит без ошибок.

Далее этот код используется в другом приложении, инклюдится хидер, линкуется библиотека.

main.cpp:
Код

#include <class1.hpp>

int main( int argc, char ** argv )
{
Class1 o(1,2);

return 0;
}


Линковщик выкидывает следующее:
main.cpp: undefined reference to Class1::~Class()

В чем ошибка?

Спасибо за советы\ответы!

Автор: alexvs11 13.2.2011, 01:19
сделайте public: конструктору и деструктору

Автор: Kappac 13.2.2011, 07:28
=)
Они и есть паблик.
P.S.
Забыл дописать. 
Undefined reference и на вызов конструктора.

Автор: azesmcar 13.2.2011, 08:13
Kappac

Скорее всего забыл добавить class1.cpp в список компилируемых файлов при сборке библиотеки или библиотеку не залинковал нормально.

Автор: Kappac 13.2.2011, 08:41
azesmcar, спасибо! =)
Именно добавить забыл, переменную с описанием пути сделал, а к сборке не добавил!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)