Гость Опубликовано 6 января, 2004 Жалоба Поделиться Опубликовано 6 января, 2004 Есть следующий простой модуль ядра: #define MODULE #define __KERNEL__ #include #if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) #define MODVERSIONS #endif #ifdef MODVERSIONS #include #endif #include #include int init_module(void) { printk("<1>Hello, world\n"); return 0; } void cleanup_module(void) { printk("<1>Goodbye, cruel world\n"); } и makefile для него: CC=gcc MODCFLAGS:=-Wall-DMODULE-D__KERNEL__-DLINUX main.o: main.cpp $(CC) $(MODCFLAGS) -c main.cpp компилируется успешно, но при попытке установить его командой insmod main.o выдаёт: main.o: unresolved symbol __gxx_personality_v0 Откуда взялся этот __gxx_personality_v0? Помогите, кто может. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 7 января, 2004 Жалоба Поделиться Опубликовано 7 января, 2004 __gxx_personality_v0 взялся от C++. В данном конкретном случае лечение очень простое --- переименовать файл из main.cpp в main.c поскольку приведенный код -- это вполне законное C. Вообще же, я отнюдь не уверен (хотя точно и не знаю) в возможности писать модули ядра именно на C++. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.