2013-10-15 5 views
1

Прежде чем кто указывает на это, подобный вопрос был дан здесь раньше: Compiling Linux Kernel Module With A Custom HeaderВключая пользовательские заголовки в Linux модули

У меня есть один и тот же вопрос. Я создал свой собственный набор структур и функций и определил их в файле C. Затем я создал файл заголовка с тем же именем и включил его в модуль. Затем я создал Makefile:

obj-m += themodule.o 
themodule-objs := the-module.o my-code.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

Мои пользовательские файлы - my-code.c и my-code.h.

Когда я попытался скомпилировать модуль, я получил тонну предупреждения, сказав, что все функции из my-code.c не определены в модуле .c. Когда я попытался загрузить модуль, я получил ошибки, сообщив, что функция вызывает my-code.c, были «неизвестными символами». Я попробовал решение, упомянутое в связанном вопросе (см. Makefile), но это не помогло мне. Есть предположения?

+0

Вы можете скопировать и вставить вы * unknonw символы * ошибки и предупреждения компиляции? – Federico

ответ

2

Заказ в themodule-objs вопросы. Попробуйте следующее:

obj-m += themodule.o 
themodule-objs := my-code.o the-module.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 
+0

Спасибо за ответ. Тем не менее, у меня все же есть те же предупреждения и ошибки. –

Смежные вопросы