2016-06-12 6 views
3

Я пытаюсь скомпилировать модуль, но получить эту ошибку.sys/types.h: Нет такого файла или каталога

fatal error: sys/types.h: No such file or directory 
compilation terminated. 

Вот мой модуль заголовки файлов

#include <linux/init.h>   // Macros used to mark up functions e.g. __init __exit 
#include <linux/module.h>   // Core header for loading LKMs into the kernel 
#include <linux/device.h>   // Header to support the kernel Driver Model 
#include <linux/kernel.h>   // Contains types, macros, functions for the kernel 
#include <linux/fs.h>    // Header for the Linux file system support 
#include <asm/uaccess.h>   // Required for the copy to user function 
#include <sys/types.h> 

И мои Makefile

obj-m = test.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

Я пытался искать этот файл

find /usr/include -name types.h 

Здесь представлены результаты

/usr/include/sys/types.h 
/usr/include/libr/sdb/types.h 
/usr/include/rpc/types.h 
/usr/include/i386-linux-gnu/sys/types.h 
/usr/include/i386-linux-gnu/asm/types.h 
/usr/include/i386-linux-gnu/bits/types.h 
/usr/include/linux/iio/types.h 
/usr/include/linux/types.h 
/usr/include/x86_64-linux-gnu/sys/types.h 
/usr/include/x86_64-linux-gnu/asm/types.h 
/usr/include/x86_64-linux-gnu/bits/types.h 
/usr/include/asm-generic/types.h 
/usr/include/c++/5/parallel/types.h 

Я попытался установить его в качестве #include "/usr/include/sys/types.h"

но получил следующие ошибки

/usr/include/sys/types.h:25:22: fatal error: features.h: No such file or directory 
compilation terminated. 

Я использую Kali Linux(Debian) платформу AMD64

Linux kali 4.5.0-kali1-amd64 #1 SMP Debian 4.5.5-1kali1 (2016-06-06) x86_64 GNU/Linux 

Что не так? Благодаря

решаемые

К сожалению это была моя вина, я сделал опечатку в типе и попытался включить sys/types.h файл, но это не обязательно на всех всех типов, объявленных в /usr/src/linux-headers-4.5.0-kali1-common/include/linux/types.h в моем случае. Всем спасибо.

+0

Просто добавьте ответ на свой вопрос вместо того, чтобы обновить свой вопрос как «*** РЕШЕН ***». Тогда вы также можете принять свой собственный ответ. – alk

ответ

1

к сожалению это была моя вина, я сделал опечатку в типе и попытался включить SYS/types.h файл, но это не обязательно на всех всех типов, объявленных в/USR/SRC /linux-headers-4.5.0-kali1-common/include/linux/types.h в моем случае. Всем спасибо.

1

Я предлагаю смотреть, чтобы увидеть, если gcc ищет файлы заголовков в каталог, где находится файл с помощью следующей команды:

`gcc -print-prog-name=cc1` -v  # for c 
+0

Спасибо за ответ '#include "..." поиск начинается здесь: #include <...> поиск начинается здесь: /USR/Библиотека/GCC/x86_64-Linux-гну/5/включают /USR/местные/включить /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed /usr/include ' – ketazafor

+0

Это ваш весь' makefile'? – Allen

+0

Да, это полный файл – ketazafor

1

Вы можете просто добавить «типы» заголовочный файл с источниками , скачать отсюда: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/types.h.html

+0

Что вы хотите добавить к этому файлу? Как вы можете видеть, я уже пытался его включить, кроме того, здесь не указано 'ssize_t', указанное вами. – ketazafor

+0

Загрузите файл и добавьте его в каталог проекта, а затем попытайтесь включить его, а в отношении ssize_t просто добавьте строку: typedef unsigned int ssize_t; –

Смежные вопросы