Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование *NIX систем > Что делать с исходникоми и что такое make?


Автор: igmyrj 21.5.2006, 17:58
Извините за глупый вопрос, просто недавно линукс утановил. 
Мне надо установить драйвер, который пришел ко мне в исходниках (там .с и .h файлы еще есть Makefile) не пойму как их откомпилировать. Команда  make пишет: "Makefile:27: *** Linux kernel source not found.  Останов.". Что делать? 

Автор: bilbobagginz 21.5.2006, 18:35
привет.
совет, в общем: 
Когда устанавливаешь из исходника следует ознакомиться ( т.е. внимательно изучить файлы README,INSTALL или html-ную документацию внутри главной папки программы.
Там указываются точные инструкции, и что требуется для установки программы, вкл. версии и т.д., что оч. важно.


в частности:
когда устанавливаешь драйвер, он собирается ( т.е. компилируется ) с привязкой к версии ядра. что такое ядро почитай в интернете, но для того, чтобы собрать драйвер обычно нужны файлы "заголовки" твоей версии ядра. обычно для этого нужно установить пакет ПО с названием linux-headers/kernel-headers.

пока. 

Автор: igmyrj 21.5.2006, 19:06
Ага, понятно. Спасибо! 
А значит make компилирует эти исходники? 

Автор: bilbobagginz 22.5.2006, 00:54
нет. make это такая "кухарка".
она получает рецепт в форме Makefile.
а компилирует их gcc/g++, или другой компилятор.

пока. 

Автор: igmyrj 22.5.2006, 15:23
 Все равно не понимаю, что именно делает make? 

Автор: bilbobagginz 22.5.2006, 16:04
программы пишутся человеком,  обычно ( не всегда ) в форме текста, состоящего из инструкций на языке программирования. этот язык понятен человеку, а компутер его не понимает. для того чтобы программу мог запустить компутер, нужно её перевести из человеку понятного в "Машинный код", который компутер может исполнять. 
один из способов - превратить всю программу сразу в один кусок информации написанной на языке машины ( компутера ).
Этот процесс в общем называется компиляция.
для компиляции (сборки) программы написаной в 1 файле на языке Cи, нужно запустить команду:
gcc program.c -o program.exe
если это просто програмка из 1-2-3 файлов - все пучком - не страшно.

когда програмка состоит уже из файлов так 10-20, и ты её пишешь, то собирать каждый раз 20 файлов - в лом. и вообще если только 1 файл изменился, то на самом деле не нужно всё перекомпилировать сызнова.
тут приходит make. он как раз это и делает: он смотрит на даты последнего доступа - и решает: если файл новее объекта сборки, то объект сборки подлежит перекомпиляции.

т.е. make - это такой повар, который приготавливает программу по рецепту написанновму в файле Makefile


 

Автор: igmyrj 25.5.2006, 12:41
Понятно. Ну про компиляцию я знал, я программировать умею=), а за остальное спасибо! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)