![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Zaca |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Linux 2.6
QT Creator 2.4.1 При использовании Makefile KERNEL=$(shell if [ "`uname -r | grep 2.6.`" = "" ]; then echo "2" ; else echo "2.6"; fi) ifeq ($(KERNEL),2.6) #kernel 2.6 obj-m := driver_I.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean endif получаю на выходе модуль driver_I.ko, который я могу вставлять в ядро. Хотела для этих целей (линковать, компилировать) использовать IDE QT4 Создаю проект (простой проект нра языке С), собираю - на выходе стопицот ошибок. Подскажите, что не так делаю? Спасибо. |
|
|
![]() |
RazrFalcon |
![]()
Сообщение
#2
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Каких ошибок
|
|
|
Iron Bug |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
не знаю насчёт Qt Creator'а, но когда при компиляции модуля ядра вылазит куча ошибок - это обычно банальное отсутствие в системе заголовков нужного ядра.
|
|
|
Zaca |
![]()
Сообщение
#4
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ну естессно - первый десяток ненайденные инклюды и пошло-поехало...
Впыталась поставить в файл проекта INCLUDEPATH, началась проблема с поиском путей в этих найднных "h"-файлах. Определяла переменные QTDIR, PATH, LD_LIBRARY_PATH - безтолку Не пойму - надо что-то еще настроить? Сама идея, для работы с драйвером, QT использовать, не противоречит виликой идее чучхе? |
|
|
maint |
![]()
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
ну естессно - первый десяток ненайденные инклюды и пошло-поехало... Впыталась поставить в файл проекта INCLUDEPATH, началась проблема с поиском путей в этих найднных "h"-файлах. Определяла переменные QTDIR, PATH, LD_LIBRARY_PATH - безтолку Не пойму - надо что-то еще настроить? Сама идея, для работы с драйвером, QT использовать, не противоречит виликой идее чучхе? не противоречит конечно, для людей любящих забивать гвозди микроскопом. А загадочность этого явления невозможно определить не зная как написан текст и не имея хотя бы начальных текстов ошибок. Как любят говорить в фидо серьезные дядьки, телепаты в отпуске |
|
|
Zaca |
![]()
Сообщение
#6
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Это без INCLUDEPATH
kmk.c:4:28: error: linux/autoconf.h: No such file or directory kmk.c:5:26: error: linux/module.h: No such file or directory kmk.c:6:22: error: linux/mm.h: No such file or directory kmk.c:7:24: error: linux/slab.h: No such file or directory kmk.c:8:27: error: linux/vmalloc.h: No such file or directory kmk.c:9:25: error: linux/delay.h: No such file or directory kmk.c:10:29: error: linux/interrupt.h: No such file or directory kmk.c:11:29: error: linux/selection.h: No such file or directory kmk.c:12:24: error: linux/init.h: No such file or directory kmk.c:13:28: error: linux/smp_lock.h: No such file or directory kmk.c:14:28: error: linux/spinlock.h: No such file or directory kmk.c:15:20: error: asm/io.h: No such file or directory kmk.c:16:25: error: asm/uaccess.h: No such file or directory kmk.c:19:27: error: linux/cpumask.h: No such file or directory kmk.c:20:28: error: linux/pci-aspm.h: No such file or directory In file included from ../kmk_proj/kmk.c:33: /usr/src/linux-2.6.27.7-9/drivers/staging/rt2860/rt2860.h:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rt2860_interrupt' In file included from ../kmk_proj/kmk.c:36: ../kmk_proj/kmk.h:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'buf_KMK_test' ../kmk_proj/kmk.h:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'kmk_handler' In file included from ../kmk_proj/kmk.c:37: ../kmk_proj/kmk_ou.h:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'buf_KMK_ou_CTRL' In file included from ../kmk_proj/kmk.c:38: ../kmk_proj/kmk_ctrl.h:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'buf_KMK_ctrl_Inicial' ../kmk_proj/kmk.c:56: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'buf_ioctl' ../kmk_proj/kmk.c:63: error: expected specifier-qualifier-list before 'u32' ../kmk_proj/kmk.c:84: warning: 'struct file' declared inside parameter list ../kmk_proj/kmk.c:84: warning: its scope is only this definition or declaration, which is probably not what you want ../kmk_proj/kmk.c:84: warning: 'struct inode' declared inside parameter list ../kmk_proj/kmk.c: In function 'kmk_open': ../kmk_proj/kmk.c:88: warning: implicit declaration of function 'MINOR' ../kmk_proj/kmk.c:88: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:89: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:96: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:99: warning: implicit declaration of function 'try_module_get' ../kmk_proj/kmk.c:99: error: 'THIS_MODULE' undeclared (first use in this function) ../kmk_proj/kmk.c:99: error: (Each undeclared identifier is reported only once ../kmk_proj/kmk.c:99: error: for each function it appears in.) ../kmk_proj/kmk.c: At top level: ../kmk_proj/kmk.c:105: warning: 'struct file' declared inside parameter list ../kmk_proj/kmk.c:105: warning: 'struct inode' declared inside parameter list ../kmk_proj/kmk.c: In function 'kmk_close': ../kmk_proj/kmk.c:108: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:109: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:114: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:116: warning: implicit declaration of function 'module_put' ../kmk_proj/kmk.c:116: error: 'THIS_MODULE' undeclared (first use in this function) ../kmk_proj/kmk.c:117: warning: implicit declaration of function 'printk' ../kmk_proj/kmk.c: At top level: ../kmk_proj/kmk.c:122: warning: 'struct poll_table_struct' declared inside parameter list ../kmk_proj/kmk.c:122: warning: 'struct file' declared inside parameter list ../kmk_proj/kmk.c: In function 'kmk_poll': ../kmk_proj/kmk.c:127: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:128: warning: implicit declaration of function 'poll_wait' ../kmk_proj/kmk.c:128: error: 'kmk_info' has no member named 'wait_trans_fin_queue' ../kmk_proj/kmk.c:130: error: 'kmk_info' has no member named 'trans_completed' ../kmk_proj/kmk.c:131: error: 'kmk_info' has no member named 'trans_completed' ../kmk_proj/kmk.c: At top level: ../kmk_proj/kmk.c:140: warning: 'struct file' declared inside parameter list ../kmk_proj/kmk.c:140: warning: 'struct inode' declared inside parameter list ../kmk_proj/kmk.c: In function 'kmk_ioctl': ../kmk_proj/kmk.c:143: error: 'u32' undeclared (first use in this function) ../kmk_proj/kmk.c:143: error: 'ADDR_RAM' undeclared (first use in this function) ../kmk_proj/kmk.c:143: error: 'ADDR_REG' undeclared (first use in this function) ../kmk_proj/kmk.c:143: warning: left-hand operand of comma expression has no effect ../kmk_proj/kmk.c:145: error: 'u16' undeclared (first use in this function) ../kmk_proj/kmk.c:145: error: expected ';' before 'REG' ../kmk_proj/kmk.c:149: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:150: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:155: warning: implicit declaration of function 'copy_from_user' ../kmk_proj/kmk.c:155: error: 'buf_ioctl' undeclared (first use in this function) ../kmk_proj/kmk.c:157: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:158: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:159: error: expected ')' before 'u16' ../kmk_proj/kmk.c:159: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:160: error: expected ')' before 'u16' ../kmk_proj/kmk.c:160: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:163: error: expected ')' before 'u16' ../kmk_proj/kmk.c:163: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:163: error: 'buf_KMK_test' undeclared (first use in this function) ../kmk_proj/kmk.c:164: error: expected ')' before 'u16' ../kmk_proj/kmk.c:164: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:165: error: expected ')' before 'u16' ../kmk_proj/kmk.c:165: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:166: error: expected ')' before 'u16' ../kmk_proj/kmk.c:166: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:167: error: expected ')' before 'u16' ../kmk_proj/kmk.c:167: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:168: error: 'kmk_info' has no member named 'comand' ../kmk_proj/kmk.c:170: error: 'kmk_info' has no member named 'trans_completed' ../kmk_proj/kmk.c:171: warning: implicit declaration of function 'up' ../kmk_proj/kmk.c:171: error: 'kmk_info' has no member named 'sem' ../kmk_proj/kmk.c:172: warning: implicit declaration of function 'interruptible_sleep_on' ../kmk_proj/kmk.c:172: error: 'kmk_info' has no member named 'wait_trans_fin_queue' ../kmk_proj/kmk.c:173: warning: implicit declaration of function 'down_interruptible' ../kmk_proj/kmk.c:173: error: 'kmk_info' has no member named 'sem' ../kmk_proj/kmk.c:174: error: 'ERESTARTSYS' undeclared (first use in this function) ../kmk_proj/kmk.c:176: error: 'kmk_info' has no member named 'sem' ../kmk_proj/kmk.c:177: error: 'kmk_info' has no member named 'trans_completed' ../kmk_proj/kmk.c:178: error: 'kmk_info' has no member named 'comand' ../kmk_proj/kmk.c:179: error: expected ')' before 'u16' ../kmk_proj/kmk.c:179: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:180: error: expected ')' before 'u16' ../kmk_proj/kmk.c:180: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:182: warning: implicit declaration of function 'copy_to_user' ../kmk_proj/kmk.c:187: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:188: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:189: error: expected ')' before 'u16' ../kmk_proj/kmk.c:189: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:190: error: expected ')' before 'u16' ../kmk_proj/kmk.c:190: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:192: error: expected ')' before 'u16' ../kmk_proj/kmk.c:192: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:192: error: 'buf_KMK_ctrl_Inicial' undeclared (first use in this function) ../kmk_proj/kmk.c:193: error: expected ')' before 'u16' ../kmk_proj/kmk.c:193: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:194: error: expected ')' before 'u16' ../kmk_proj/kmk.c:194: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:200: error: 'REG' undeclared (first use in this function) ../kmk_proj/kmk.c:201: error: 'DATA' undeclared (first use in this function) ../kmk_proj/kmk.c:202: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:203: error: expected ')' before 'u16' ../kmk_proj/kmk.c:203: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:210: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:211: error: expected ')' before 'u16' ../kmk_proj/kmk.c:211: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:218: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:224: error: expected ')' before 'u16' ../kmk_proj/kmk.c:224: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:229: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:233: error: expected ')' before 'u16' ../kmk_proj/kmk.c:233: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:245: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:246: error: 'kmk_info' has no member named 'comand' ../kmk_proj/kmk.c:247: error: expected ')' before 'u16' ../kmk_proj/kmk.c:247: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:252: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:253: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:254: error: expected ')' before 'u16' ../kmk_proj/kmk.c:254: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:255: error: expected ')' before 'u16' ../kmk_proj/kmk.c:255: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:257: error: expected ')' before 'u16' ../kmk_proj/kmk.c:257: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:258: error: expected ')' before 'u16' ../kmk_proj/kmk.c:258: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:259: error: expected ')' before 'u16' ../kmk_proj/kmk.c:259: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:260: error: expected ')' before 'u16' ../kmk_proj/kmk.c:260: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:263: error: expected ')' before 'u16' ../kmk_proj/kmk.c:263: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:263: error: 'buf_KMK_ou_CTRL' undeclared (first use in this function) ../kmk_proj/kmk.c:264: error: expected ')' before 'u16' ../kmk_proj/kmk.c:264: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:269: error: expected ')' before 'u16' ../kmk_proj/kmk.c:269: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:270: error: expected ')' before 'u16' ../kmk_proj/kmk.c:270: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:279: error: 'kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:280: error: 'kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:281: error: expected ')' before 'u16' ../kmk_proj/kmk.c:281: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:282: error: expected ')' before 'u16' ../kmk_proj/kmk.c:282: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:284: error: expected ')' before 'u16' ../kmk_proj/kmk.c:284: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c: At top level: ../kmk_proj/kmk.c:296: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'kmk_init' ../kmk_proj/kmk.c:375: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'kmk_handler' ../kmk_proj/kmk.c: In function 'kmk_cleanup': ../kmk_proj/kmk.c:395: error: 'struct kmk_info' has no member named 'next' ../kmk_proj/kmk.c:397: error: expected ')' before 'u16' ../kmk_proj/kmk.c:397: error: 'struct kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:397: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:398: error: expected ')' before 'u16' ../kmk_proj/kmk.c:398: error: 'struct kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:398: warning: type defaults to 'int' in declaration of 'type name' ../kmk_proj/kmk.c:400: error: 'struct kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:401: warning: implicit declaration of function 'iounmap' ../kmk_proj/kmk.c:401: error: 'struct kmk_info' has no member named 'aperture1' ../kmk_proj/kmk.c:402: error: 'struct kmk_info' has no member named 'aperture2' ../kmk_proj/kmk.c:405: warning: implicit declaration of function 'pci_release_regions' ../kmk_proj/kmk.c:407: warning: implicit declaration of function 'free_irq' ../kmk_proj/kmk.c:407: error: dereferencing pointer to incomplete type ../kmk_proj/kmk.c:408: warning: implicit declaration of function 'kfree' > env | grep QT дает QT_IM_MODULE=xim QT_SYSTEM_DIR=/usr/share/desktop-data QT_PLUGIN_PATH=/root/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ QT_IM_SWITCHER=imsw-multi |
|
|
maint |
![]()
Сообщение
#7
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
значит так, все эти хедеры находятся по пути путь_к_текущему_ядру/include. Следовательно в проект следует добавить
у меня допустим это бы выглядело
Сообщение отредактировал maint - 23.3.2012, 14:36 |
|
|
Zaca |
![]()
Сообщение
#8
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
значит так, все эти хедеры находятся по пути путь_к_текущему_ядру/include. Следовательно в проект следует добавить
у меня допустим это бы выглядело
да, это я сделала, инклюды увиделись - но те ".h" файлы, на которые ссылаются эти - вылетают с той же проблемой... и их там туча... наверно можно же как-то настроить, чтобы эти файлы искались и в дирриктории и в поддиректории... |
|
|
maint |
![]()
Сообщение
#9
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
значит так, все эти хедеры находятся по пути путь_к_текущему_ядру/include. Следовательно в проект следует добавить
у меня допустим это бы выглядело
да, это я сделала, инклюды увиделись - но те ".h" файлы, на которые ссылаются эти - вылетают с той же проблемой... и их там туча... наверно можно же как-то настроить, чтобы эти файлы искались и в дирриктории и в поддиректории... текст, текст начала программы. Только где хедеры, без всего текста, как в ошибках. Какая то элементарная ошибка в написании |
|
|
Iron Bug |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
тут дело не в инклюдах. а в том, что модуль ядра должен собираться в каталоге /lib/modules/<версия ядра>/build. это должен быть линк на сорцы ядра (или хотя бы хэдеры). также в каталоге /lib/modules/<версия ядра>/ должен быть линк sources - также на сорцы ядра или хэдеры.
|
|
|
Zaca |
![]()
Сообщение
#11
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
тут дело не в инклюдах. а в том, что модуль ядра должен собираться в каталоге /lib/modules/<версия ядра>/build. это должен быть линк на сорцы ядра (или хотя бы хэдеры). также в каталоге /lib/modules/<версия ядра>/ должен быть линк sources - также на сорцы ядра или хэдеры. Спасибо, в понедельник попробую |
|
|
Zaca |
![]()
Сообщение
#12
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
тут дело не в инклюдах. а в том, что модуль ядра должен собираться в каталоге /lib/modules/<версия ядра>/build. это должен быть линк на сорцы ядра (или хотя бы хэдеры). также в каталоге /lib/modules/<версия ядра>/ должен быть линк sources - также на сорцы ядра или хэдеры. Вроде все так и есть. решила собрать ядро в каталоге /lib/modules/<версия ядра>/build linux-awyp:/lib/modules/2.6.27.7-9-pae/build # make bzImage make -C /usr/src/linux-2.6.27.7-9 O=/usr/src/linux-2.6.27.7-9-obj/i386/pae/. bzImage Using /usr/src/linux-2.6.27.7-9 as source for kernel GEN /usr/src/linux-2.6.27.7-9-obj/i386/pae/Makefile CHK include/linux/version.h CHK include/linux/utsrelease.h CC arch/x86/kernel/asm-offsets.s In file included from /usr/src/linux-2.6.27.7-9/include/linux/gfp.h:4, from /usr/src/linux-2.6.27.7-9/include/linux/kmod.h:22, from /usr/src/linux-2.6.27.7-9/include/linux/module.h:13, from /usr/src/linux-2.6.27.7-9/include/linux/crypto.h:21, from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets_32.c:7, from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets.c:2: /usr/src/linux-2.6.27.7-9/include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined In file included from /usr/src/linux-2.6.27.7-9/include/linux/gfp.h:4, from /usr/src/linux-2.6.27.7-9/include/linux/kmod.h:22, from /usr/src/linux-2.6.27.7-9/include/linux/module.h:13, from /usr/src/linux-2.6.27.7-9/include/linux/crypto.h:21, from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets_32.c:7, from /usr/src/linux-2.6.27.7-9/arch/x86/kernel/asm-offsets.c:2: /usr/src/linux-2.6.27.7-9/include/linux/mmzone.h:221: error: ‘MAX_NR_ZONES’ undeclared here (not in a function) make[3]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make[2]: *** [prepare0] Error 2 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2 завалила систему...( |
|
|
Zaca |
![]()
Сообщение
#13
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Что, больше нечего подсказать по этой теме?
|
|
|
maint |
![]()
Сообщение
#14
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Zaca |
![]()
Сообщение
#15
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Беру популярный пример из инета:
"Сам код"
Запуская Makefile - все нормально в QT Creator "Ход сборки с ошибками" Цитата 15:43:10: Выполняется сборка проекта char_dev... 15:43:10: Запускается: «/opt/QtSDK/Desktop/Qt/4.8.0/gcc/bin/qmake» /opt/QtSDK/Project/char_dev/char_dev.pro -r -spec linux-g++ 15:43:10: Процесс «/opt/QtSDK/Desktop/Qt/4.8.0/gcc/bin/qmake» завершился нормально. 15:43:10: Запускается: «/usr/bin/make» -w make: Entering directory `/opt/QtSDK/Project/char_dev-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK_______' Makefile:189: warning: overriding commands for target `chardev.o' Makefile:186: warning: ignoring old commands for target `chardev.o' gcc -c -pipe -O2 -Wall -W -I../../Desktop/Qt/4.8.0/gcc/mkspecs/linux-g++ -I../char_dev -I../char_dev -I. -o chardev.o ../char_dev/chardev.c ../char_dev/chardev.c:7:26: error: linux/module.h: No such file or directory ../char_dev/chardev.c:9:67: error: asm/uaccess.h: No such file or directory ../char_dev/chardev.c:16: warning: 'struct file' declared inside parameter list ../char_dev/chardev.c:16: warning: its scope is only this definition or declaration, which is probably not what you want ../char_dev/chardev.c:16: warning: 'struct inode' declared inside parameter list ../char_dev/chardev.c:17: warning: 'struct file' declared inside parameter list ../char_dev/chardev.c:17: warning: 'struct inode' declared inside parameter list ../char_dev/chardev.c:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'device_read' ../char_dev/chardev.c:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'device_write' ../char_dev/chardev.c:36: error: variable 'fops' has initializer but incomplete type ../char_dev/chardev.c:37: error: unknown field 'read' specified in initializer ../char_dev/chardev.c:37: error: 'device_read' undeclared here (not in a function) ../char_dev/chardev.c:37: warning: excess elements in struct initializer ../char_dev/chardev.c:37: warning: (near initialization for 'fops') ../char_dev/chardev.c:38: error: unknown field 'write' specified in initializer ../char_dev/chardev.c:38: error: 'device_write' undeclared here (not in a function) ../char_dev/chardev.c:38: warning: excess elements in struct initializer ../char_dev/chardev.c:38: warning: (near initialization for 'fops') ../char_dev/chardev.c:39: error: unknown field 'open' specified in initializer ../char_dev/chardev.c:39: warning: excess elements in struct initializer ../char_dev/chardev.c:39: warning: (near initialization for 'fops') ../char_dev/chardev.c:40: error: unknown field 'release' specified in initializer ../char_dev/chardev.c:41: warning: excess elements in struct initializer ../char_dev/chardev.c:41: warning: (near initialization for 'fops') ../char_dev/chardev.c: In function 'init_module': ../char_dev/chardev.c:49: warning: implicit declaration of function 'register_chrdev' ../char_dev/chardev.c:52: warning: implicit declaration of function 'printk' ../char_dev/chardev.c: In function 'cleanup_module': ../char_dev/chardev.c:74: warning: implicit declaration of function 'unregister_chrdev' ../char_dev/chardev.c: At top level: ../char_dev/chardev.c:87: warning: 'struct file' declared inside parameter list ../char_dev/chardev.c:87: warning: 'struct inode' declared inside parameter list ../char_dev/chardev.c:87: error: conflicting types for 'device_open' ../char_dev/chardev.c:16: error: previous declaration of 'device_open' was here ../char_dev/chardev.c: In function 'device_open': ../char_dev/chardev.c:91: error: 'EBUSY' undeclared (first use in this function) ../char_dev/chardev.c:91: error: (Each undeclared identifier is reported only once ../char_dev/chardev.c:91: error: for each function it appears in.) ../char_dev/chardev.c:93: warning: implicit declaration of function 'sprintf' ../char_dev/chardev.c:93: warning: incompatible implicit declaration of built-in function 'sprintf' ../char_dev/chardev.c:95: warning: implicit declaration of function 'try_module_get' ../char_dev/chardev.c:95: error: 'THIS_MODULE' undeclared (first use in this function) ../char_dev/chardev.c:87: warning: unused parameter 'inode' ../char_dev/chardev.c:87: warning: unused parameter 'file' ../char_dev/chardev.c: At top level: ../char_dev/chardev.c:103: warning: 'struct file' declared inside parameter list ../char_dev/chardev.c:103: warning: 'struct inode' declared inside parameter list ../char_dev/chardev.c:103: error: conflicting types for 'device_release' ../char_dev/chardev.c:17: error: previous declaration of 'device_release' was here ../char_dev/chardev.c: In function 'device_release': ../char_dev/chardev.c:111: warning: implicit declaration of function 'module_put' ../char_dev/chardev.c:111: error: 'THIS_MODULE' undeclared (first use in this function) ../char_dev/chardev.c:103: warning: unused parameter 'inode' ../char_dev/chardev.c:103: warning: unused parameter 'file' ../char_dev/chardev.c: At top level: ../char_dev/chardev.c:119: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'device_read' ../char_dev/chardev.c:164: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'device_write' make: *** [chardev.o] Error 1 make: Leaving directory `/opt/QtSDK/Project/char_dev-build-desktop-Desktop_Qt_4_8_0_for_GCC__Qt_SDK_______' 15:43:10: Процесс «/usr/bin/make» завершился с кодом 2. Возникла ошибка при сборке проекта char_dev (цель: Desktop) Во время выполнения сборки на этапе «Сборка» Как настроить работу в QT4? Сообщение отредактировал ViGOur - 28.3.2012, 15:20
Причина редактирования: Учимся использовать тэг CODE, expand можно попробовать на следующем уроке. ;)
|
|
|
Iron Bug |
![]()
Сообщение
#16
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
конечно, вряд ли кто-то собирает модули ядра таким экзотическим образом и я с Qt вообще дел не имею, но как вариант: модуль ядра нужно собирать той же версией компилятора, которая использовалась для сборки самого ядра. не знаю, как это указать Qt Creator'у. можно просто линк g++ подменить.
а так, всё равно есть ощущение, что он тупо не находит нужные ему файлы, о чём сразу и сообщает. проверить, что юзер имеет доступ к каталогу сборки модулей. проверить, что линки build и sources в каталоге сборки указывают на место, где лежит сорц ядра (или хотя бы хэдеры). ещё возможно, Creator'у нужно как-то принудительно указать рабочий каталог. по ходу, он пытаетcя собрать модуль прямо там, где он лежит. в этом случае ничего не соберётся, естественно. но про настройки Qt Creator'а я ничего не знаю, увы. Сообщение отредактировал Iron Bug - 28.3.2012, 21:39 |
|
|
Zaca |
![]()
Сообщение
#17
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 22.3.2012 Пользователь №: 3281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо за помощь.
Наверно действительно надо делать так, как советуют: в редакторе текст, компиляция Makefile. Это, наверно, винда развратила - неистребимое желание иметь все в одном флаконе...) |
|
|
Iron Bug |
![]()
Сообщение
#18
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Наверно действительно надо делать так, как советуют: в редакторе текст, компиляция Makefile. Это, наверно, винда развратила - неистребимое желание иметь все в одном флаконе...) да как-то и под вендой драйвера из makefile'ов собираются. по крайней мере, мне не приходило в голову их собирать как-то иначе. возможно, что у студии сейчас есть какие-то приблуды для KMDF, но раньше ничего подобного точно не было и я как-то по привычке пишу файлы сборки для дров, что в венде, что в лине. при сборке через makefile исключается возможность влияния лишних параметров типа переменных среды конкретной оболочки, всяких там хитрых путей поиска и т.п. а писать сам код можно где угодно, это кому как больше нравится. |
|
|
kuzulis |
![]()
Сообщение
#19
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Я все планирую создать плагин для QtCreator для сборки драйверов и всяких модулей ядра.
Но пока все как-то нет времени. Если есть желание помочь - то ссылка на проект тут https://gitorious.org/qt-creator-drivers-bu...-manager-plugin |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.6.2025, 6:18 |