LINUX.ORG.RU

Подключение <linux/ ... .h> при компиляции через командную строку.

 , , ,


0

2

Привет, ЛОР!

Прости за нубский вопрос, но как заставить компилироваться мой хеллоуворлд, использующий <linux/list.h> ?

P.S.Компилятор GCC



Последнее исправление: vgovseychuk (всего исправлений: 1)

#include <linux/list.h>

в заголовке есть?

l4gfcm ★★
()
Ответ на: комментарий от hotpil

Да в общем, как обычно. В директории лежит hello.c, который содержит

#include <linux/list.h>
Пытаюсь так:
gcc -pthread -o hello hello.c
В ответ:
fatal error: linux/list.h: Нет такого файла или каталога
 #include <linux/list.h>
                        ^
compilation terminated.
Пытаюсь так:
gcc -pthread -o -I /путь_к_скачанным_сорцам_ядра/include/ hello hello.c
В ответ куча ошибок:
stddef.h:11:2: error: expected identifier before numeric constant
  false = 0,
  ^
types.h:14:26: error: conflicting types for ‘fd_set’
 typedef __kernel_fd_set  fd_set;
                          ^
time.h:103:19: note: previous declaration of ‘timer_t’ was here
 typedef __timer_t timer_t;
                   ^
...

vgovseychuk
() автор топика
Ответ на: комментарий от vgovseychuk

false в твоем случае — макрос. Или сделай #undef false, или вообще не используй это имя(тем более, что оно может оказаться и зарезервированным). Лучше второе.

Касательно остального: в ядре и стандартной библиотеке уже определели эти типы. И при чем по-разному. Копайся в исходниках и думай как исправить.

a1batross ★★★★★
()
Ответ на: комментарий от vgovseychuk

Переделал #include <linux/list.h> на #include <list.h> и пытаюсь так:

gcc -pthread -I /usr/src/linux-headers-3.19.0-58/include/ -o hello hello.c
Теперь ГЦЦ не нравится следующее:
In file included from /usr/include/stdio.h:33:0,
                 from hello.c:1:
/usr/src/linux-headers-3.19.0-58/include/linux/stddef.h:4:31: fatal error: uapi/linux/stddef.h: Нет такого файла или каталога
 #include <uapi/linux/stddef.h>
                               ^
compilation terminated.

vgovseychuk
() автор топика
Ответ на: комментарий от a1batross

До тех пор, пока я не пытался привинтить list.h проблем не было. И pthread работал нормально, и куча других стандартных вещей.

vgovseychuk
() автор топика
Ответ на: комментарий от vgovseychuk

Вам скорее всего стоит отказаться от linked list из ядра. Или взять хедер и максимум отвинтить от него ядро.

a1batross ★★★★★
()
Ответ на: комментарий от vgovseychuk

Проще выковыривать. По ссылке выше написано почему.

a1batross ★★★★★
()

а не пойти ли тебе скушать чего нибудь с гречкой?

mos ★★☆☆☆
()

Зачем тебе ядреный list? Используй glib и его GList или GSList.

sigurd ★★★★★
()
Ответ на: комментарий от hotpil

Короче, не стал заморачиваться, написал свой простейший список. Всем спасибо за инфу. Может, какому-нибудь читателю пригодится.

vgovseychuk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.