2016-01-02 5 views
0

Я начал писать драйвер устройства и написал первый драйвер символов и получил ошибку компиляции:Ошибка устройства драйвера компиляции на Linux

scripts/Makefile.build:44: /home/betatest/Public/Device-Driver-Test/first-driver/Makefile: No such file or directory 
    make[2]: *** No rule to make target '/home/betatest/Public/Device-Driver-Test/first-driver/Makefile'. Stop. 
    Makefile:1448: recipe for target '_module_/home/betatest/Public/Device-Driver-Test/first-driver' failed 
    make[1]: *** [_module_/home/betatest/Public/Device-Driver-Test/first-driver] Error 2 
    make[1]: Leaving directory '/usr/src/kernels/2.6.32-573.12.1.el6.x86_64' 
    makefile:19: recipe for target 'default' failed 
    make: *** [default] Error 2 

Мое имя файла сделать это, «Makefile»? при изучении make-файла написано, что имя файла-файла по умолчанию может быть Makefile или makefile Это не имеет значения для утилиты make. Имеет ли значение имя файла make-файлов драйверов устройств? Должно ли имя файла make для драйвера устройства обязательно «Makefile»? Если да, то почему?

Любая помощь будет оценена по достоинству.

+0

С помощью опции -f вы можете использовать любое имя. В противном случае вы должны использовать имя по умолчанию – stark

+0

Что такое имя файла make для кода драйвера устройства? make -f makefile Я попытался, но по-прежнему ту же ошибку. –

+0

Что такое строка 44 скриптов/Makefile.build? – stark

ответ

1

Сценарий не работает с именем по умолчанию. Сценарий дает -f /home/betatest/Public/Device-Driver-Test/first-driver/Makefile, которого не существует.

+0

Ниже приведен вывод команды 'ls':
[mypc @ myos first-driver] $ ls
Файл-файл first-driver.c

+0

И если вы запустили make в этом каталоге, он найдет его по умолчанию. Если вы запустите make из другого каталога и укажите параметр -f, он найдет определенный файл. – stark

1

while studying makefile it is written that default name of make file can be Makefile or makefile it does not make difference for make utility

Достаточно. Когда вы вызываете команду make, она знает, что нужно искать либо Makefile, либо makefile.

Но могут быть и другие причины, по которым вы видите эту ошибку. Возможно, сценарий вызывает make с явным аргументом -f для поиска Makefile. Посмотрите на строку 44 в scripts/Makefile.build.

1

What Name to Give Your Makefile

При использовании make утилита будет искать в порядке, как GNUmakefile, Makefile и имя Makefile.First не рекомендуется, так как она должна быть использована, когда GNU сделать используется утилита. Для нестандартного имени файла makefile вы можете указать --file или -f с помощью утилиты make.

похоже, что у линии 44 была ошибка. Попробуйте компилировать, что makefile с опцией -f.