настройка: ошибка: libmpfr не найден или использует другой ABI (включая статический и динамический)

Вопрос или проблема

Привет всем,

Недавно я работал над небольшим побочным проектом, связанным с кастомным дистрибутивом Linux, не используя инструкции LFS. В данный момент я компилирую кросс-компилятор для gcc. В любом случае, я получаю следующую ошибку при выполнении команды make:

configure: ошибка: libmpfr не найден или использует другую ABI (включая статическую и динамическую).
Makefile:5730: рецепт для цели 'configure-mpc' завершился неудачей
make: *** [configure-mpc] Ошибка 1

ОБНОВЛЕНИЕ: Я установил mpfr через apt на этом компьютере, и теперь у меня появляется другая ошибка:

проверка недавней MPFR... нет
configure: ошибка: требуется версия MPFR >= 4.1.0
Makefile:5730: рецепт для цели 'configure-mpc' завершился неудачей
make: *** [configure-mpc] Ошибка 1
handy/install: строка 276: x86_64-unknown-linux-gnu-gcc: команда не найдена

Странно то, что архив mpfr, который он должен использовать, имеет версию 4.1.0… Я не думаю, что пакет apt >= 4.1.0, и не знаю, как обновить его до 4.1.0.

Мой скрипт можно найти здесь, Статический GCC начинается с строки 239.

Я проводил некоторые исследования, но не смог найти много информации. Я нашел кого-то, кто упоминал, что смена дистрибутивов помогла, а затем оказалось, что их версия MPFR не работала.

Я компилирую это на Ubuntu WSL в Windows, потому что мой ноутбук быстрее – при необходимости я скоро буду компилировать это на своем ПК с Gentoo.

Моя версия MPFR – 4.1.0, версия GCC – 10.2.0.

Почему это происходит? Спасибо, Боббэй

Я предполагаю, что вы следуете руководству Linux Journal – и решение для меня заключалось в установке libmpfr-dev через apt-get или менеджер пакетов вашего дистрибутива. Я думаю, это произошло из-за изменения иерархии или чего-то подобного.

Ответ или решение

Здравствуйте, Bobbbay,

Ваш вопрос о проблемах настройки при компиляции кросс-компилятора для GCC весьма актуален, и я постараюсь помочь вам с этим.

Причина ошибки

Ошибка, с которой вы сталкиваетесь:

configure: error: libmpfr not found or uses a different ABI (including static vs shared).

указывает на то, что конфигурационная система не может найти библиотеку MPFR (Multiple Precision Floating-Point Reliable) или находит её, но с несовместимой ABI (Application Binary Interface). Это может быть вызвано следующими проблемами:

  1. Отсутствие библиотеки – Библиотека MPFR не установлена или не находится в стандартных директориях.
  2. Несоответствие ABI – Могут быть конфликты между статической и динамической сборками или между версиями библиотек.
  3. Неверная версия библиотеки – Если установленная версия MPFR ниже требуемой, это также приведет к ошибке.

Решение проблемы

  1. Убедитесь, что MPFR установлена:
    Установите библиотеку MPFR и её зависимости с помощью менеджера пакетов вашего дистрибутива. В Ubuntu это можно сделать с помощью следующей команды:

    sudo apt-get install libmpfr-dev

    Это установит как саму библиотеку, так и необходимые заголовочные файлы.

  2. Проверьте версию MPFR:
    Убедитесь, что версия установленной библиотеки соответствует необходимой:

    dpkg -l | grep libmpfr

    Если установленная версия ниже 4.1.0, вам необходимо вручную скачать и установить требуемую версию с официального сайта MPFR или использовать команду apt для установки более новой версии:

    sudo apt-get install libmpfr-dev
  3. Путь к библиотекам:
    Если вы установили MPFR из исходников, убедитесь, что пути к библиотекам указаны верно. Вы можете установить переменную окружения PKG_CONFIG_PATH:

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
  4. Переустановка:
    Если вы всё ещё сталкиваетесь с проблемами, попробуйте удалить старые версии MPFR и установить их заново:

    sudo apt-get remove libmpfr-dev
    sudo apt-get install libmpfr-dev
  5. Проверка на других системах:
    Иногда проблема может быть специфической для вашего дистрибутива или версии. Если у вас есть возможность, попробуйте собрать ваш проект на другой системе (например, Gentoo, как вы упомянули).

  6. Дополнительные проверки:
    Убедитесь, что все зависимости корректно установлены и что пути к библиотеке указаны в конфигурируемых скриптах. Также проверьте, не используется ли компилятор gcc, который может не находить необходимые библиотеки.

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

Удачи в вашем проекте!

С уважением, [Ваше имя]

Оцените материал
Добавить комментарий

Капча загружается...