asm/errno.h: Никакой такой файл или каталог

Я пытаюсь установить gcc 4.8.1 в данный момент. В настоящее время 4.8.2 и 4.9.1 установлены. Я загрузил 4.8.1 отсюда http://gcc.cybermirror.org/releases/gcc-4.8.1/. После извлечения файлов я сделал a ./configure и затем попробованный make. В конце make, Я получаю эту ошибку

/usr/include/linux/errno.h:1:23: fatal error: asm/errno.h: No such file or directory
 #include <asm/errno.h>

Я плохо знаком с Linux, таким образом, я не знаю, как найти или добавить этот заголовочный файл.

Править: Шаги я сделал:

  1. Извлеките gcc-4.8.1.tar.gz к папке
  2. Открытое окно терминала
  3. cd gcc-4.8.1
  4. ./configure --build=x86_64-linux-gnu
  5. make -j4

Я не знаю то, что я сделал по-другому, но это наконец скомпилировало. После этого я действительно делал установку. Мой вопрос теперь, как я использую это вместо 4.8.2 который с помощью команды gcc-4.8 все еще значения по умолчанию к.

7
задан 30 September 2014 в 03:45

2 ответа

asm/errno.h заголовок предоставлен множеством пакетов. Нечетный это gcc потребовал бы его, но можно попробовать:

sudo apt-get install linux-libc-dev

Также необходимо сказать GCC искать архитектуру и ОС определенное местоположение для заголовков:

../configure --build=x86_64-linux-gnu 

(или i386-linux-gnu для 32-разрядной Ubuntu).


Это настоятельно рекомендовано при создании материала из источника, который Вы используете --prefix флаг (и с GCC, --program-suffix флаг) при конфигурировании. Так как Вы не имеете, попытайтесь работать /usr/bin/gcc.

Таким образом:

tar xf gcc-4.8.1.tar.gz 
mkdir gcc
cd gcc
../gcc-4.8.1/configure  --build=x86_64-linux-gnu --prefix=/usr/local --program-suffix=-4.8.1
make -j
sudo make install

Теперь Ваши двоичные файлы GCC будут установлены на /usr/local/bin/, и другие вещи в других папках в /usr/local.

Например:

$ /usr/local/bin/gcc-4.8.1  # or simply gcc-4.8.1, since this folder is in your PATH

Отметьте, как я работаю configure и make из другого каталога, за пределами того, где источник GCC? Это - то, как документы GCC рекомендуют это, GCC создаются.

4
ответ дан 17 November 2019 в 03:40

Я получил ту же ошибку по телефону ubuntu-xenial 4.4.0-75-generic.

, я нашел, что имел /usr/include/asm-generic папка, но никакой /usr/include/asm, который искал gcc.

Создание символьной ссылки решило его для меня.

sudo ln -s /usr/include/asm-generic/ /usr/include/asm

Справедливое предупреждение : Хотя, иногда, нужно сделать этот вид обмана, это - не всегда хорошая идея просто, потому что он работает. Я делаю это в виртуальной машине, которую я могу воссоздать путем запущения простого скрипта, и именно поэтому это не грандиозное предприятие, если я повреждаю что-то.

5
ответ дан 17 November 2019 в 03:40

Другие вопросы по тегам:

Похожие вопросы: