LINUX.ORG.RU

История изменений

Исправление ZenitharChampion, (текущая версия) :

Для начала, давай узнаем, какой у тебя дистрибутив Linux. Допустим это Ubuntu Linux.

Когда компилятор компилирует что-нибудь, он использует системные библиотеки. Они находятся в /usr/lib. Часть библиотек находится просто в /lib, это самые основные библиотеки ОС. Ты можешь зайти в эту директорию и посмотреть на них. Например libjpeg.so.62. Что означает .so? Это расширение, дающее понять, что это - файл библиотеки. То же самое, что и .dll в ОС Windows. Но что же это за .62 такое?

В операционную систему может быть установлено две libjpeg. Например версия .62 и .8. Между двумя этими версиями была сломана совместимость (изменился так называемый ABI). Поэтому часть программ использует одну библиотеку, а часть - другую.

Так вот. Рядом с файлом libjpeg.so.62 находится файл libjpeg.so. Этот файл является символьной ссылкой на файл libjpeg.so.62. А вернее, на одну из этих библиотек: .8 или .62. Когда компилятор компилирует какую-нибудь программу, эта ссылка помогает ему понять, какую именно библиотеку использовать.

Вот только файлов с расширением .so без числа после него, в Ubuntu нет по умолчанию. Сразу после установки, эти файлы отсутствуют. Чтобы они появились, нужно установить пакет libjpeg-dev. В этом пакете находится эта символьная ссылка, а также заголовочные файлы /usr/include/что-нибудь. Без них компиляция тоже работать не будет.

И вот знаешь, таких пакетов -dev существует много. И если ты собираешься что-нибудь компилировать, то их надо установить.

Моей первой скомпилированной программой была Pidgin. Я скачал исходный код, выполнил команду ./configure, и узнал, что в моей системе нет libpurple. Я удивился, так как эта библиотека в моей системе была (и предыдущая версия Pidgin, установленная в систему, ей пользовалась). Тогда я установил пакет libpurple-dev, и компиляция пошла дальше. Однако в процессе компиляции было много ошибок. Например «не найдена библиотека libpng», хотя, как ты уже догадался, она была в системе. Тогда я установил libpng-dev. И так было 10 раз, с 10 пакетами, пока всё наконец-то не скомпилировалось.

Оказывается, этого можно было избежать, если выполнить в консоли это: sudo apt-get build-dep pidgin. Эта команда устанавливает все библиотеки-зависимости для сборки pidgin, а также, если по какой-то причине не установлен компилятор, то также устанавливает и его. г В твоём случае, надо выполнить команду sudo apt-get build-dep linux-image. Я могу написать название пакета с ошибкой, так что проверь меня, поищи, как называется пакет с ядром, например в менеджере пакетов Synaptic.

Также должен быть включен этот репозиторий: https://askubuntu.com/questions/158871/how-do-i-enable-the-source-code-reposi...

Также, когда ты выполняешь команды apt-get, то САМА ПРОГРАММА даёт подсказки. Например «эти зависимости больше не используются, и поэтому их можно удалить».

Исправление ZenitharChampion, :

Для начала, давай узнаем, какой у тебя дистрибутив Linux. Допустим это Ubuntu Linux.

Когда компилятор компилирует что-нибудь, он использует системные библиотеки. Они находятся в /usr/lib. Часть библиотек находится просто в /lib, это самые основные библиотеки ОС. Ты можешь зайти в эту директорию и посмотреть на них. Например libjpeg.so.62. Что означает .so? Это расширение, дающее понять, что это - файл библиотеки. То же самое, что и .dll в ОС Windows. Но что же это за .62 такое?

В операционную систему может быть установлено две libjpeg. Например версия .62 и .8. Между двумя этими версиями была сломана совместимость (изменился так называемый ABI). Поэтому часть программ использует одну библиотеку, а часть - другую.

Так вот. Рядом с файлом libjpeg.so.62 находится файл libjpeg.so. Этот файл является символьной ссылкой на файл libjpeg.so.62. А вернее, на одну из этих библиотек: .8 или .62. Когда компилятор компилирует какую-нибудь программу, эта ссылка помогает ему понять, какую именно библиотеку использовать.

Вот только файлов с расширением .so без числа после него, в Ubuntu нет по умолчанию. Сразу после установки, эти файлы отсутствуют. Чтобы они появились, нужно установить пакет libjpeg-dev. В этом пакете находится эта символьная ссылка, а также заголовочные файлы /usr/include/что-нибудь. Без них компиляция тоже работать не будет.

И вот знаешь, таких пакетов -dev существует много. И если ты собираешься что-нибудь компилировать, то их надо установить.

Моей первой скомпилированной программой была Pidgin. Я скачал исходный код, выполнил команду ./configure, и узнал, что в моей системе нет libpurple. Я удивился, так как эта библиотека в моей системе была (и предыдущая версия Pidgin, установленная в систему, ей пользовалась). Тогда я установил пакет libpurple-dev, и компиляция пошла дальше. Однако в процессе компиляции было много ошибок. Например «не найдена библиотека libpng», хотя, как ты уже догадался, она была в системе. Тогда я установил libpng-dev. И так было 10 раз, с 10 пакетами, пока всё наконец-то не скомпилировалось.

Оказывается, этого можно было избежать, если выполнить в консоли это: sudo apt-get build-dep pidgin. Эта команда устанавливает все библиотеки-зависимости для сборки pidgin, а также, если по какой-то причине не установлен компилятор, то также устанавливает и его. г В твоём случае, надо выполнить команду sudo apt-get build-dep linux-image. Я могу написать название пакета с ошибкой, так что проверь меня, поищи, как называется пакет с ядром, например в менеджере пакетов Synaptic.

Также должен быть включен этот репозиторий: https://askubuntu.com/questions/158871/how-do-i-enable-the-source-code-reposi...

Также, когда ты выполняешь команды apt-get, то САМА ПРОГРАММА даёт подсказки. Например «эти зависимости больше не используются, и поэтому их можно удалить».

Исходная версия ZenitharChampion, :

Для начала, давай узнаем, какой у тебя дистрибутив Linux. Допустим это Ubuntu Linux.

Когда компилятор компилирует что-нибудь, он использует системные библиотеки. Они находятся в /usr/lib. Часть библиотек находится просто в /lib, это самые основные библиотеки ОС. Ты можешь зайти в эту директорию и посмотреть на них. Например libjpeg.so.62. Что означает .so? Это расширение, дающее понять, что это - файл библиотеки. То же самое, что и .dll в ОС Windows. Но что же это за .62 такое?

В операционную систему может быть установлено две libjpeg. Например версия .62 и .8. Между двумя этими версиями была сломана совместимость (изменился так называемый ABI). Поэтому часть программ использует одну библиотеку, а часть - другую.

Так вот. Рядом с файлом libjpeg.so.62 находится файл libjpeg.so. Этот файл является символьной ссылкой на файл libjpeg.so.62. А вернее, на одну из этих библиотек: .8 или .62. Когда компилятор компилирует какую-нибудь программу, эта ссылка помогает ему понять, какую именно библиотеку использовать.

Вот только файлов с расширением .so без числа после него, в Ubuntu нет по умолчанию. Сразу после установки, эти файл отсутствуют. Чтобы они появились, нужно установить пакет libjpeg-dev. В этом пакете находится эта символьная ссылка, а также заголовочные файлы /usr/include/что-нибудь. Без них компиляция тоже работать не будет.

И вот знаешь, таких пакетов -dev существует много. И если ты собираешься что-нибудь компилировать, то их надо установить.

Моей первой скомпилированной программой была Pidgin. Я скачал исходный код, выполнил команду ./configure, и узнал, что в моей системе нет libpurple. Я удивился, так как эта библиотека в моей системе была (и предыдущая версия Pidgin, установленная в систему, ей пользовалась). Тогда я установил пакет libpurple-dev, и компиляция пошла дальше. Однако в процессе компиляции было много ошибок. Например «не найдена библиотека libpng», хотя, как ты уже догадался, она была в системе. Тогда я установил libpng-dev. И так было 10 раз, с 10 пакетами, пока всё наконец-то не скомпилировалось.

Оказывается, этого можно было избежать, если выполнить в консоли это: sudo apt-get build-dep pidgin. Эта команда устанавливает все библиотеки-зависимости для сборки pidgin, а также, если по какой-то причине не установлен компилятор, то также устанавливает и гео.

В твоём случае, надо выполнить команду sudo apt-get build-dep linux-image. Я могу написать название пакета с ошибкой, так что проверь меня, поищи, как называется пакет с ядром, например в менеджере пакетов Synaptic.

Также должен быть включен этот репозиторий: https://askubuntu.com/questions/158871/how-do-i-enable-the-source-code-reposi...