Перейти к содержанию

Как добавить заголовочныe файлы в Linux?


Рекомендуемые сообщения

Файл нашелся в

/usr/src/linux-headers-3.2.0-4-686-pae/include/config/hid/pid.h
/usr/src/linux-headers-3.2.0-4-common/include/linux/pid.h

Запускаю gcc с опцией -l/usr/src/linux-headers-3.2.0-4-common/include/, выдает fatal error: linux/pid.h: Нет такого файла или каталога.

Ссылка на сообщение
Поделиться на другие сайты

Можно кусочек кода, который этот хедер включает? -I должно было помочь, странно.

Может, кавычки? Если там #include "linux/pid.h", попробуйте заменить на #include <linux/pid.h>. Особенность gcc, насколько помню.

Изменено пользователем vit9696
Ссылка на сообщение
Поделиться на другие сайты

Показать код:

 

/*sample.c*/
#include <linux/sched.h>
#include <linux/pid.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char ** argv)
{	
	return 0;
}
# Makefile

sample: sample.c
	gcc -o sample sample.c -l/usr/src/linux-headers-3.2.0-4-common/include/
clean:
	rm -f *.o sample

 

 

Ссылка на сообщение
Поделиться на другие сайты

Ясно. Попробуй заменить (хедеры инклудятся -I, либы -L, опечатка):

gcc -o sample sample.c -l/usr/src/linux-headers-3.2.0-4-common/include/

на 

gcc -I/usr/src/linux-headers-3.2.0-4-common/include/ sample.c -o sample
Изменено пользователем vit9696
Ссылка на сообщение
Поделиться на другие сайты

Теперь вот что пишет:

gcc -I/usr/src/linux-headers-3.2.0-4-common/include/ sample.c -o sample
In file included from /usr/src/linux-headers-3.2.0-4-common/include/linux/rcupdate.h:36:0,
                 from /usr/src/linux-headers-3.2.0-4-common/include/linux/pid.h:4,
                 from sample.c:2:
/usr/src/linux-headers-3.2.0-4-common/include/linux/types.h:13:2: warning: #warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" [-Wcpp]
In file included from /usr/src/linux-headers-3.2.0-4-common/include/linux/rcupdate.h:37:0,
                 from /usr/src/linux-headers-3.2.0-4-common/include/linux/pid.h:4,
                 from sample.c:2:
/usr/src/linux-headers-3.2.0-4-common/include/linux/cache.h:5:23: fatal error: asm/cache.h: Нет такого файла или каталога
compilation terminated.
Ссылка на сообщение
Поделиться на другие сайты

Честно говоря, что-то очень специфичное вы пытаетесь сделать. Варнинг говорит, что хедеры ядра вы не так подключаете, так как я с ними никогда не работал, посоветовать правильный способ не могу. По поводу cache.h — что-то вроде:

/usr/src/linux-headers-3.2.0-4-common/arch/x86/include/

 надо в пути добавить.

Ссылка на сообщение
Поделиться на другие сайты

Ну, по аналогии с предыдущим файлом же. Ищешь в поиске, добавляешь. Хотя, имхо, странно всё это занятие ><

Ссылка на сообщение
Поделиться на другие сайты

Мне нужна функция find_task_by_vpid (/usr/src/linux-headers-3.2.0-4-common/include/linux/sched.h) или подобная.

gcc -I/usr/src/linux-headers-3.2.0-4-common/include/ sample.c -o sample

При таком запуске gcc почему-то ее не находит.

Я хотел использовать find_get_pid (/usr/src/linux-headers-3.2.0-4-common/include/linux/pid.h).

 

Ну, по аналогии с предыдущим файлом же.

Как несколько путей добавить? Как в моем сообщении или по-другому? :rolleyes:

 

А вообще это все нужно для того, чтобы вывести имена файлов, используемых процессом. Может, есть что-нибудь попроще?

Изменено пользователем Paddington
Ссылка на сообщение
Поделиться на другие сайты

1) В системе много sched.h, поэтому надо убедиться, что инклудится именно тот, что нужен. Стоит проверить PATH gcc

Согласно ссылке http://gcc.gnu.org/ml/gcc-help/2007-09/msg00205.html
Можно заюзать что-то вроде

`gcc -print-prog-name=cc1` -v

и посмотреть, инклудится ли тот sched.h, что содержит прототип для find_task_by_vpid.

2) Да, именно так пути добавляются. Честно говоря, это в справке написано :rolleyes: 

3) Ну а по проблеме: http://www.cyberciti.biz/faq/howto-linux-get-list-of-open-files/ не?

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...