Я пытаюсь скомпилировать модуль ядра в ядре 3.13, и я получаю эту ошибку:
Я google и не нашел ответа. Вот часть кода, которая относится к этой ошибке:
Могу ли я получить помощь? Я действительно не знаю, что не так. Это может быть ядро 3.13, которому нужен патч. Я где-то читал (на KERNEL 3.10), что ядро нуждается в патче. Может ли кто-нибудь показать мне, где я могу получить патч ядра 3.13, чтобы в конечном итоге решить проблему. Благодаря
I’m trying to compile a kernel module on kernel 3.13 and I get this error:
I google it and did not found any response. Here is the part of the code which refers to this error:
Can I get help ? I really don’t know what is wrong. It might be the kernel 3.13 which needs a patch. I read somewhere (on KERNEL 3.10) that the kernel needs patch. Can anyone show me where can I get the 3.13 kernel patch to eventually fix the problem. Thanks
Ярлыки
- С++ (3)
- Стихи (1)
- тонировка (1)
- Цитаты (2)
- ALTlinux (1)
- Apache (2)
- big-endian (1)
- Blogger (1)
- books (3)
- books links (1)
- Buisness (10)
- C (1)
- C# (5)
- c++ (27)
- car (8)
- Cheat (1)
- CSS (1)
- DLL (1)
- Draw (1)
- Eclipse (2)
- Films (1)
- Firefox (4)
- Flash (1)
- GTK (2)
- GUI (1)
- Home server (1)
- Hotels (1)
- HTML (6)
- IE (1)
- Internet (2)
- Java (1)
- JavaScript (6)
- jQuery (1)
- KDE (1)
- KeeTouch (1)
- Linux (34)
- little-endian (1)
- Makefile (1)
- MFC (6)
- multi-thread (2)
- Music (1)
- ODBC (2)
- OpenBox (2)
- photo (4)
- PHP (38)
- programing (2)
- proxy (1)
- QML (37)
- Qt (41)
- QtCreator (2)
- RegExp (3)
- Shopping (12)
- shutdown (1)
- Soft (1)
- Sound Card (1)
- SQL (1)
- SQL Server (14)
- Subversion (1)
- SVN (1)
- teach (4)
- text-editor (1)
- Travels (1)
- Ubuntu (38)
- Upstart (1)
- Vi (2)
- VirtualBox (2)
- Virtualization (1)
- vkontakte.ru (1)
- Web (2)
- Web-Kit (5)
- WinAPI (7)
- Windows (4)
понедельник, 18 апреля 2011 г.
c++ Implicit declaration of function
Интересный аспект стандарта языка Си, на который я раньше никогда не обращал внимания. Итак, следующий код:
int main() <
void *a, *b;
return 0;
>
Прототип функции foo не объявлен. Если теперь оттранслировать этот код (без линковки), то код соберется нормально и мы не получим никаких сообщений об ошибках, только предупреждения:
$ gcc -c -Wall test.c
test.c: In function ‘main’:
test.c:4: warning: implicit declaration of function ‘foo’
test.c:4: warning: assignment makes pointer from integer without a cast
Компилятор сообщает нам, что функция foo объявлена неявно и т.к. он не видел прототипа этой функции, то (по стандарту) делается ряд предположений. Например предполагается, что функция возвращает int, что влечет за собой следующее предупреждение о том, что из этого самого предполагаемого int‘а мы пытаемся неосторожно сделать указатель. Об этом и других предполложениях сказано в стандарте C89, раздел 3.3.2.2 Function calls. В новом стандарте C99 о неявном преобразовании возвращаемого типа функции ничего не говориться, или я не заметил. См. также Draft ANSI C Rationale, 3.3.2.2 Function calls.
В общем и целом, сделано всё это для совместимости со старыми библиотеками.
Ошибка о том, что данная функция не определена вылезает только на этапе линковки: