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

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


Paddington

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

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

/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/

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

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

По поводу cache.h — что-то вроде:

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

Так?

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

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

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

Мне нужна функция 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/ не?

  • Согласен 1
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • Austria.unvorsatzlich
      От Austria.unvorsatzlich
      Добрый день, пожалуйста прошу  подскажите почему выбивает ошибку при установки графики на KESL 11 
      astraadmin@astra:~/Загрузки$ sudo alien -k --scripts kesl-gui-11.3.0-7441.x86_64.rpm
      Unpacking of 'kesl-gui-11.3.0-7441.x86_64.rpm' failed at /usr/share/perl5/Alien/Package/Rpm.pm line 168.
       
    • infobez_bez
      От infobez_bez
      Здравствуйте! 

      На АРМ c АстраЛинукс установлен KES 12.1 , управляется политикой с нашего сервера администрирования. 
      Пытаемся в политике настроить управление сетевым экраном. Наша цель запретить всё, кроме определенного сайта, например pochta.ru.
      Перепробовали различные комбинации:
      Запрет нижним правилом всего и правилами выше разрешение определенных IP, разрешение "Входящие/Исходящие", "Входящие пакеты/Исходящие пакеты", группы и т.д. но итог практически всегда один, интернет действительно блокируется, сайты в браузере не открываются, через консоль ip нужного сайта пингуется, пакеты доходят, но в браузере нужный сайт все равно не открывается. На странице ошибка DNS_PROBE_FINISHED_NO_INTERNET.
      Может кто-то подсказать решение? Нужно чтобы через браузер открывался только один сайт, веб контроль в данном случае не подходит, нужен именно сетевой экран. Спасибо!
       
    • armandu
      От armandu
      Вирус-шифровальщик зашифровал файлы и добавил к ним расширение ELONS. В приложении логи анализа системы и архив с зашифрованными файлами и требованием. Буду признателен за любую помощь!
      Зашифр. файлы.zip Addition.txt FRST.txt
    • Gistap
      От Gistap
      Когда я включаю пк у меня он начинает сильно шуметь и проц грузиться очень сильно, и грееться до 70 градусов на рабочем столе. Когда я открываю диспетчер задач до 2 dwm.exe который походу майнер снижает моментально нагрузку с цп, но его задачу можно снять и он не будет грузить систему будет только 1 dwm.exe файл. И ещё у того dwm exe который грузит цп путь такой же как и у оригинального, что мне в этом случае делать я уже всё антивирусы перепробовал и в безопасном режиме их прогонял что только я не делал, не должен же себя так вести себя dwm exe почему когда я открываю диспетчер задач нагрузка моментально падает это же не нормально. Я думал что это майнер, антивирусы находили трояны я их удалял в безопасном режиме. Почему их воопще 2 может эта ошибка системы?

    • leksstav
      От leksstav
      Всех приветствую !
       
      Подскажите пожалуйста, для KESL 12.0.0.6672 под Alt Linux x64 какой качать дистрибутив агента ?
      Запутался, ткните пожалуйста ссылкой на агента для Kesl 12.0.0.6672 под Alt Linux архитектура x64.
      Оказывается в новом дистрибутиве ФСТЭК версия теперь отсутствует дистрибутив агента.
×
×
  • Создать...