OSDev

для всех
Текущее время: 08 дек 2019, 11:52

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 11:24 

Зарегистрирован: 25 окт 2011, 11:30
Сообщения: 2
Пишу свою операционку. Появились задачи, эффективно решить которые можно только через классы и наследование.
MinGW GCC ни в какую не компонует код, где упоминаются виртуальные функции. Для удобства отладки вынес их в отдельный тестовый файл - ошибки те же.
Дословный текст кода:
Код:
class base{
   public:
   base()
   {

   }
   virtual int foo();
};

int base::foo()
{

}

class Derived : public base
{
   int foo();
};

int Derived::foo()
{

}

void _main()
{
   Derived A;
}


Строки компиляции и ошибки:
Код:
d:\MinGW\bin>d:\mingw\bin\gcc -ffreestanding -fpermissive -nodefaultlibs -nostdlib -c d:\myos\sources\test.cpp -o d:\myos\bin\test.o -lstdc++
d:\MinGW\bin>d:\mingw\bin\ld -Ttext 0x500000 --image-base 0x0 -o d:\myos\bin\test.bin d:\myos\bin\test.o
d:\myos\bin\test.o:test.cpp:(.rdata$_ZTI7Derived[__ZTI7Derived]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
d:\myos\bin\test.o:test.cpp:(.rdata$_ZTI4base[__ZTI4base]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'


Подскажите пожалуйста, что не так с кодом?
Перепробовал разные варианты - ничего не помогает.
Если компилирую и компоную непосредственно самим g++ - все нормально, без ошибок, но появляются совершенно невероятные глюки...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 11:38 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Добавьте опции -fno-rtti -fno-exceptions. И стандартную библиотеку C++ вы зря подключаете, она от системы зависит. Откажитесь от использования стандартных классов или напишите свою.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 11:46 

Зарегистрирован: 25 окт 2011, 11:30
Сообщения: 2
Большое спасибо! Все помогло. Стандартную библиотеку я не использую) Это отовизм, остался от экспериментов с командной строкой, когда пробывал разные параметры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 12:13 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1096
Откуда: Балаково
Artemich писал(а):
Большое спасибо! Все помогло. Стандартную библиотеку я не использую)

Стандартную библиотеку можно использовать без линковки, используя только заголовочные файлы. Дело в том, что исполняемый код многих шаблонов и функций расположен в заголовках. Я например использую vector без проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 12:51 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Himik писал(а):
Стандартную библиотеку можно использовать без линковки, используя только заголовочные файлы. Дело в том, что исполняемый код многих шаблонов и функций расположен в заголовках. Я например использую vector без проблем.


В таком случае лучше использовать собственную копию библиотеки, типа того же STLport. Мало ли, что там в гццшной libstdc++ и от чего она зависит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: undefined reference to vtable - MinGW GCC
СообщениеДобавлено: 26 окт 2011, 13:07 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1096
Откуда: Балаково
grindars писал(а):
Мало ли, что там в гццшной libstdc++ и от чего она зависит.

Линковщик покажет :-)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB