Werror implicit function declaration

Я пытаюсь скомпилировать модуль ядра в ядре 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)
Читайте также:  Hp laserjet 3020 driver

понедельник, 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.

В общем и целом, сделано всё это для совместимости со старыми библиотеками.

Ошибка о том, что данная функция не определена вылезает только на этапе линковки:

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *