LINUX.ORG.RU

debian & headers


0

0

хочу уточнить где правильно должны располагаться кернел-хедеры в дебиане.

aptitutude их устанавливает в /usr/src/linux-headers-2.6.22-3

но есть еще /usr/include/linux здесь то что должно лежать ? тоже заголовки ? они копируются туда ручками ?

и какую директорию используют программы (мплеер, к примеру) для поиска заголовков во время своей компиляции ?

anonymous
Ответ на: комментарий от anonymous

ok, а как тогда программа (мплеер) при компиляции ищет заголовки - откуда она узнает, что искать их надо в

/usr/src/linux-headers-2.6.22-3

а не в /usr/src/linux-headers-2.6.22-2 или /usr/src/linux-headers-2.6.18-2

anonymous
()
Ответ на: комментарий от anonymous

Ниоткуда. Попытка userspace-программы искать заголовки в /usr/src/linux-headers-* или /usr/src/linux является грубейшей ошибкой, т.к. в userspace заголовки оттуда не обязаны даже компилироваться (это заголовки только для внутреннего использования ядром). Правильные для userspace заголовки лежат в /usr/include.

Если же речь идет про модуль mga-vid, то в Debian'е он есть уже скомпилированный под каждое ядро, плюс еще module-assistant умеет его собирать под самодельные ядра. В этом процессе, действительно, требуется явно указать, где лежат заголовки ядра.

AEP ★★★★★
()
Ответ на: комментарий от AEP

итак, с правильным расположением заголвков определились - /usr/include

тогда как хи устанавливать именно туда - с помощью linux-libc-dev ? или же ручками копировать из /usr/src/linux-headers-2.6.18-2 в /usr/include ?

(в моем случае интересует только один аспект - чтобы при сборке некоторых программ не было проблем с поиском заголовков)

anonymous
()

Обычно создаётся линк /usr/src/linux на каталог с исходниками. Кстати, советую поставить кроме headers и исходники, они могут понадобиться в некоторых случаях, например, для установки nvidia драйверов.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

для драйверов скорее всего будет достаточно kernel-headers + linux-kbuild

alex_custov ★★★★★
()
Ответ на: комментарий от anonymous

> это не одно и то же?

Нет, заголовки в /usr/include почищены от вещей, специфичных для ядра. Они НЕ должны обновляться вслепую, поскольку их обновление теоретически приводит к тому, что объявления структур, подразумеваемые в glibc (которая скомпилирована со старыми заголовками) и в программах типа mplayer (которые скомпилированы уже с новыми заголовками) могут не совпадать.

И тебе, кстати, нужно aptitude install build-essential

AEP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.