OSDev http://osdev.su/ |
|
undefined reference to vtable - MinGW GCC http://osdev.su/viewtopic.php?f=6&t=454 |
Страница 1 из 1 |
Автор: | Artemich [ 26 окт 2011, 11:24 ] |
Заголовок сообщения: | undefined reference to vtable - MinGW GCC |
Пишу свою операционку. Появились задачи, эффективно решить которые можно только через классы и наследование. 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++ - все нормально, без ошибок, но появляются совершенно невероятные глюки... |
Автор: | grindars [ 26 окт 2011, 11:38 ] |
Заголовок сообщения: | Re: undefined reference to vtable - MinGW GCC |
Добавьте опции -fno-rtti -fno-exceptions. И стандартную библиотеку C++ вы зря подключаете, она от системы зависит. Откажитесь от использования стандартных классов или напишите свою. |
Автор: | Artemich [ 26 окт 2011, 11:46 ] |
Заголовок сообщения: | Re: undefined reference to vtable - MinGW GCC |
Большое спасибо! Все помогло. Стандартную библиотеку я не использую) Это отовизм, остался от экспериментов с командной строкой, когда пробывал разные параметры. |
Автор: | Himik [ 26 окт 2011, 12:13 ] |
Заголовок сообщения: | Re: undefined reference to vtable - MinGW GCC |
Artemich писал(а): Большое спасибо! Все помогло. Стандартную библиотеку я не использую) Стандартную библиотеку можно использовать без линковки, используя только заголовочные файлы. Дело в том, что исполняемый код многих шаблонов и функций расположен в заголовках. Я например использую vector без проблем. |
Автор: | grindars [ 26 окт 2011, 12:51 ] |
Заголовок сообщения: | Re: undefined reference to vtable - MinGW GCC |
Himik писал(а): Стандартную библиотеку можно использовать без линковки, используя только заголовочные файлы. Дело в том, что исполняемый код многих шаблонов и функций расположен в заголовках. Я например использую vector без проблем. В таком случае лучше использовать собственную копию библиотеки, типа того же STLport. Мало ли, что там в гццшной libstdc++ и от чего она зависит. |
Автор: | Himik [ 26 окт 2011, 13:07 ] |
Заголовок сообщения: | Re: undefined reference to vtable - MinGW GCC |
grindars писал(а): Мало ли, что там в гццшной libstdc++ и от чего она зависит. Линковщик покажет :-) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |