Linux config h нет такого файла или каталога

Обновлено: 08.07.2024

+ .
If epochs are used, the colon : is also allowed
The current value is: mykernel
Aborting.

Добавлено через 3 минуты
Попробовал такую команду fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers;
Ошибка уже другая:
make[1]: выход из каталога «/home/bogdann/Документы/temp/linux-4.14.8»
/usr/share/kernel-package/ruleset/minimal.mk:93: ошибка выполнения рецепта для цели «debian/stamp/conf/minimal_debian»
make: *** [debian/stamp/conf/minimal_debian] Ошибка 2
Failed to create a ./debian directory: at /usr/bin/make-kpkg line 970.

Добавлено через 32 минуты
Случайно не весь текст ошибки скопировал
make[2]: вход в каталог «/home/bogdann/Документы/temp/linux-4.14.8»
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
In file included from <stdin>:1:0:
./scripts/gcc-plugins/gcc-common.h:5:22: fatal error: bversion.h: Нет такого файла или каталога
compilation terminated.
Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
scripts/Makefile.gcc-plugins:69: ошибка выполнения рецепта для цели «gcc-plugins-check»
make[2]: *** [gcc-plugins-check] Ошибка 1
make[2]: выход из каталога «/home/bogdann/Документы/temp/linux-4.14.8»
debian/ruleset/targets/common.mk:194: ошибка выполнения рецепта для цели «debian/stamp/conf/kernel-conf»
make[1]: *** [debian/stamp/conf/kernel-conf] Ошибка 2
make[1]: выход из каталога «/home/bogdann/Документы/temp/linux-4.14.8»
/usr/share/kernel-package/ruleset/minimal.mk:93: ошибка выполнения рецепта для цели «debian/stamp/conf/minimal_debian»
make: *** [debian/stamp/conf/minimal_debian] Ошибка 2
Failed to create a ./debian directory: at /usr/bin/make-kpkg line 970.

Добавлено через 20 минут
Эту проблему решил, этой командой: sudo apt-get install gcc-5-plugin-dev.
Но опять же, вылезли новые ошибки
scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: Нет такого файла или каталога
compilation terminated.
scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: Нет такого файла или каталога
compilation terminated.
scripts/Makefile.host:102: ошибка выполнения рецепта для цели «scripts/extract-cert»
make[2]: *** [scripts/extract-cert] Ошибка 1
make[2]: *** Ожидание завершения заданий…
scripts/Makefile.host:102: ошибка выполнения рецепта для цели «scripts/sign-file»
make[2]: *** [scripts/sign-file] Ошибка 1
HOSTCC scripts/mod/file2alias.o
HOSTLD scripts/genksyms/genksyms
HOSTLD scripts/mod/modpost
Makefile:557: ошибка выполнения рецепта для цели «scripts»

Добавлено через 8 минут
Помогло sudo apt-get install libssl-dev.

А еще мне кажется, что этот момент можно отнести не только к ядру линукс, но и к куче других программ — это, в прицнипе, не особо важный момент. Просто в нем я впервые заметил отсутствие config.h

Потому что не каждый обязан использовать упоротую автотулзятину.

Это специфично для autotools. В ядре по другому организовано. Ядро с autotools было бы ужасным.

Так собирается ядро ведь командой make . Я что-то не понимаю. это какой-то другой make?

Это тот же самый. Но до команды надо make-файлы как-то сгенерировать. И тут уже есть разные способы. Autotools со скриптом configure только один из способов, пока ещё наиболее распространённый.


Потому что не нужен?


Autotools со скриптом configure только один из способов, пока ещё наиболее распространённый

Некоторые дегенераты ещё придумали cmake.

А каким способом генерируется Makefile для ядра линукс, например? Просто интересно что ещё есть.

Make с автотулзятиной никак не связан. Мэйкфайлы можно генерить другим софтом или писать самому. Или make не использовать тоже, есть другие системы сборки.

Оу, круто. Это просто, когда знаешь где искать, а я даже не подозревал о существоании такой документации)

Там своя утилита kbuild есть, из конфига читает опции и формирует Makefile.

Хорошо, спасибо большое.


а я даже не подозревал о существоании такой документации

Ты ещё больше удивишься, узнав, что документация идёт в комплекте с исходным кодом?

Ты так говоришь, как будто я дурачок какой-то — не смотрел исходники. Хотя в гентушных я не увидел такой документации.

Ну а по теме: да я удивлен, и не очень понимаю зачем документацию пихать в исходники, мне это кажется нелогичным, архаичным.


Хотя в гентушных я не увидел такой документации.

Эту документацию не затрагивает даже USE="-doc" и FEATURE="nodoc" , так что ты или не смотрел, или что-то скрываешь.

Ну а по теме: да я удивлен, и не очень понимаю зачем документацию пихать в исходники, мне это кажется нелогичным, архаичным.

Это для того, чтобы держать документацию и код up-to-date. Плюс, данная документация удобна для всех, в том числе для пользователей.

От многого зависит. Видишь ли, опции в конфиге ядра зачастую включают не только саму возможность, но и возможности, от которой оно зависит (dependency graph). Потому скорее да, некоторые модули ты не сможешь подключить отдельно. Но в то же время, не вкомпиленный в блоб модуль ты сможешь выгрузить и загрузить на его место новый, если он совместим с текущим ядром.

Шо за файл config.h? (И почему его нет в openSUSE10.3?)

Шо за файл config.h?

Появилась необходимость поставить кое-какую железяку в компутер, к ней прилагаются дрова для линукса, библиотреки и т.п. Точно знаю, что на SuSE9.3 железяка работает. Но при компиляции в 10.3 компайлер ругается, что отсутствует файл "linux/config.h" (то бишь /usr/include/linux/config.h, если по-полному). Обшарил хард - нет такого файла (точнее есть несколько, но они относятся к конкретным девайсам и находятся в непонятных закоулках - т.е. это не тот нужный глобльный header-файл). Доустанавливал с дистрибутива все что можно - Kernel Development, C/C++-development и т.п., но файл не появился.
Железяка разработана под линукс без упоминания конкретного дистрибутива, т.к. для ее работы используются стандартные файлы, которые есть (должны быть. ) в любом линукс-дистре. Куда же делся config.h в сюзе 10.3?

Вдогонку: очень жаль, что в ясте нельзя делать поиск в Software Management по списку файлов, а не только по "Name", "Description", "RPM Provides" и т.п.

Появилась необходимость поставить кое-какую железяку в компутер, к ней прилагаются дрова для линукса, библиотреки и т.п. Точно знаю, что на SuSE9.3 железяка работает. Но при компиляции в 10.3 компайлер ругается, что отсутствует файл "linux/config.h" (то бишь /usr/include/linux/config.h, если по-полному). Обшарил хард - нет такого файла (точнее есть несколько, но они относятся к конкретным девайсам и находятся в непонятных закоулках - т.е. это не тот нужный глобльный header-файл). Доустанавливал с дистрибутива все что можно - Kernel Development, C/C++-development и т.п., но файл не появился.
Железяка разработана под линукс без упоминания конкретного дистрибутива, т.к. для ее работы используются стандартные файлы, которые есть (должны быть. ) в любом линукс-дистре. Куда же делся config.h в сюзе 10.3?

Вдогонку: очень жаль, что в ясте нельзя делать поиск в Software Management по списку файлов, а не только по "Name", "Description", "RPM Provides" и т.п.

Железяка узко-специализированная. Называется Grape6-BLX64. Это PCI-плата с процессорами на борту, которые по определенному вшитому алгоритму просчитывают задачу N тел (для астрономов). Делают японцы.

Все, что написано насчет требований/спецификаций в очень скудном мануале:

я запускаю 32-битную версию Ubuntu 10.10 и пытаюсь скомпилировать до 64-битной цели. Основываясь на моих исследованиях, я установил пакет G++-multilib.

программа представляет собой очень простой hello world:

я нашел но они находятся под i486-linux-gnu и i686-linux-gnu каталоги /usr/include/c++/4.4/ нет c++config.h на /usr/include/c++/bits .

любой идеи о том, чего мне не хватает? Компиляция без -m64 флаг работает нормально (a.out создается и запускается правильно).

редактировать благодаря подсказке от @nightcracker я сделал немного больше исследований в структуре включения на 32 и 64-битных системах. Я добавил ответ ниже, что" исправляет " проблему временно, но я думаю, что она сломается при следующем обновлении. В принципе, мне не хватает каталога под названием /usr/include/c++/4.4/i686-linux-gnu/64 это должно содержать подкаталог называется bits у которого отсутствует файл include. Есть идеи, какой пакет должен позаботиться об этом?

добавив этот ответ частично, потому что он исправил мою проблему той же проблемы, и поэтому я могу пометить этот вопрос сам.

если вы установили версию gcc / g++ это не поставляется по умолчанию (например, g++-4.8 on lucid) вы также захотите соответствовать версии:

вы пытались добавить -I/usr/include/c++/4.4/i486-linux-gnu или -I/usr/include/c++/4.4/i686-linux-gnu ?

во время компиляции в RHEL 6.2( x86_64) я установил пакеты 32bit и 64bit libstdc++-dev, но у меня был "конфигурация c++.h нет такого файла или каталога проблемы".

каталог /usr/include/c++/4.4.6/x86_64-redhat-linux отсутствует.

Я сделал следующее:

теперь я могу компилировать 32-битные двоичные файлы на 64-битной ОС.

Кажется ошибкой опечатки в этом пакете gcc. Решение:

в моей 64-битной системе я заметил, что существует следующий каталог:

тогда имело бы смысл, что на моей 32-битной системе, которая была настроена для 64-битной кросс-компиляции, должен быть соответствующий каталог, такой как:

Я проверил и этот каталог не существует. Бег!--3--> с параметром verbose показал, что компилятор действительно искал что-то в этом месте:

ошибка связи the ignoring nonexistent directory была подсказка. К сожалению, я до сих пор не знаю, какой пакет нужно установить, чтобы этот каталог, т. е. я просто скопировал /usr/include/c++/4.4/x86_64-linux-gnu/bits каталог с моей 64-битной машины на /usr/include/c++/4.4/i686-linux-gnu/64/bits на моей машине 32.

теперь компиляция с -m64 работает правильно. Основным недостатком является то, что это все еще не правильный способ делать вещи, и я предполагаю, что в следующий раз Update Manager устанавливает и обновляет G++.

эта ошибка исправлена в "gcc-4.6".

64-разрядные биты c++config.h файл есть в 32-битных системах и наоборот. Установите g++-multilib пакет, поэтому вы можете легко установить его на терминал с помощью команды:

Расширение брекета позволяет использовать очень компактные команды.

/var/www/html/bootstrap /var/www/html/storage /var/www/html/public

Ваши команды могут быть выражены как.

[ f3] sudo chmod -R ug+rwx /var/www/html/

4 ответа

У меня тоже была эта проблема. Краткий ответ: вы должны ввести ./configure --prefix=/your/chosen/directory , находясь внутри распакованного каталога файлов .tar.gz . Вот где находится файл configure .

Преамбула

(a.) СЛЕДУЮЩУЮ ИНСТРУКЦИЮ README

  1. Найдите, где вы скачали файл Java tar.gz.
  2. Извлеките файл, щелкнув по нему правой кнопкой мыши и выбрав «Извлечь здесь».
  3. Найдите файл «Readme text» и откройте его.
  4. Следуйте инструкциям по установке файла в тексте Readme (установка файла tar.gz может отличаться от обычных команд, используемых для установки файлов в Ubuntu).

(б) ИСПОЛЬЗОВАНИЕ ОБЩИХ КОМАНД

  1. Откройте терминал, нажав CTRL + ALT + T .
  2. Введите tar -zxvf .tar.gz .
  3. Введите sudo su и введите свой корневой пароль.
  4. введите cd и добавьте путь к загруженному файлу . Если вы не знаете путь к загруженному файлу, введите ls -a , чтобы вывести список всех каталогов и найти каталог вашего файла.
  5. Введите ./ configure и нажмите клавишу ENTER
  6. Введите make и нажмите клавишу ENTER.
  7. Введите , выполните установку и нажмите клавишу ENTER.

(c) ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ЦЕНТРА UBUNTU

Открытый центр программного обеспечения Ubuntu

Введите java в поиске

Найдите Java SE 7 и нажмите «Установить», чтобы установить его.

Это произошло со мной при установке контроллера домена samba, и вы можете загрузить пакет, подобный мне, как показано ниже: (Команды относятся к установке samba !!)

и вы в папке сказать ( например: папка1) и когда вы набираете

(например: ./configure --enable-debug --enable-selftest )

Так что здесь я должен был зайти в папку samba в папке folder1

Команда ./configure запускается только при сборке определенных приложений из исходного кода.

Установочные файлы Java, которые вы скачали, не являются исходным кодом, они являются предварительно скомпилированными двоичными файлами. Для получения инструкций по установке Java посмотрите на страницу в Ubuntu Wiki , так как здесь есть несколько различных опций.

Читайте также: