Перейти к содержанию

модуль ядра


Рекомендуемые сообщения

Есть следующий простой модуль ядра:

#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? Помогите, кто может.

Ссылка на комментарий
Поделиться на другие сайты

__gxx_personality_v0 взялся от C++. В данном конкретном случае

лечение очень простое --- переименовать файл из main.cpp в

main.c поскольку приведенный код -- это вполне законное C.

Вообще же, я отнюдь не уверен (хотя точно и не знаю) в возможности

писать модули ядра именно на C++.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...