пакет разработчика llvm отсутствует libclangBasic

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

(Используя 19.10 в актуальном состоянии)

Я использую cmake для сборки emacs irony server

Cmake дополнительно загружает файл cmake для llvm;

/usr/lib/llvm-8/lib/cmake/clang/ClangTargets.cmake

и это проверяет наличие файла

/usr/lib/llvm-8/lib/libclangBasic.a

То же самое для пакета llvm-9.
Так что мой вывод заключается в том, что упаковка llvm dev повреждена и была повреждена некоторое время,
Я также видел, как другие люди сообщали об этом поврежденном пакете.

Кроме загрузки llvm/clang и сборки, есть ли обходной путь.

Кроме того, можете ли вы исправить пакет в последующем?

Если кто-то заинтересован, я нашел решение своей проблемы!

Глупо, но я пропустил установку дополнительного пакета clang-dev.
Я убедил себя, что есть проблема с моей установкой, так как видел
идентичную проблему в Интернете.

Спустя пару лет проблема продолжает возникать: если на системе установлено несколько версий Clang или LLVM, CMake будет искать libclangBasic.a не в том месте.

Очевидное решение: удалить все устаревшие пакеты Clang и LLVM.

Если возможно, не устанавливайте вручную ни один из пакетов с номером версии в их названиях. Используйте только общие пакеты, такие как llvm-dev, libclang-dev.

Часы и часы я искал решение онлайн.
Как сказал Йоахим В, вам нужно удалить старые пакеты.
Единственное, что сработало для меня (сборка QT6), это удалить
эти пакеты:

sudo apt remove clang-13
sudo apt remove clang-14
sudo apt remove clang-15
sudo apt remove clang-16

Как-то они были ответственны за ошибку.
Если вам нужна дополнительная информация, посетите этот пост.

Я столкнулся с той же проблемой при сборке Qt 6, и вот как я ее решил:

Сначала я удалил все существующие версии Clang с моей системы:

sudo apt remove clang-13
sudo apt remove clang-14

Затем я установил Clang версии 12 вместе с необходимыми библиотеками разработки:

sudo apt install libclang-12-dev llvm-12-dev

После этих шагов процесс сборки стал работать правильно.
После этого все начало работать

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

При решении проблемы отсутствия библиотеки libclangBasic в пакете dev для LLVM, существует несколько важных аспектов, которые необходимо учитывать. Ниже приведено подробное руководство по устранению этой проблемы, а также рекомендации по предотвращению её повторения.

Проблема

Пользователи, работающие с cmake для сборки проектов, таких как emacs irony server, часто сталкиваются с ошибками, связанными с отсутствием файла libclangBasic.a. Эта библиотека является частью набора инструментов LLVM и Clang, и её отсутствие может указывать на неправильную установку пакетов или их несоответствие версии.

Причины проблемы

  1. Несоответствие версий: Если на одной системе установлено несколько версий LLVM и Clang, CMake может искать библиотеку в неправильном месте, что приводит к ошибкам сборки.
  2. Отсутствие необходимых пакетов: Ваша сборка может зависеть от дополнительных пакетов, таких как libclang-dev или llvm-dev, которые содержат необходимые библиотеки для работы.
  3. Конфликт пакетов: Установка дополнительных конкретных версий (например, clang-13, clang-14) может привести к конфликтам между библиотеками, вызывая ошибки при сборке.

Решения

Чтобы исправить проблему, вы можете предпринять следующие шаги:

  1. Удаление старых версий Clang и LLVM: Убедитесь, что вы удалили все ненужные версии:

    sudo apt remove clang-13 clang-14 clang-15 clang-16
  2. Установка необходимых пакетов: Установите только те пакеты, которые нужны для вашего проекта. Рекомендуется использовать универсальные пакеты, такие как llvm-dev и libclang-dev:

    sudo apt install libclang-12-dev llvm-12-dev
  3. Проверка переменных окружения: Убедитесь, что переменные окружения, такие как CMAKE_PREFIX_PATH, корректно указывают на установленные версии LLVM и Clang.

  4. Переустановка: Если после удаления и установки новых пакетов проблема остается, попробуйте полностью удалить LLVM и Clang, а затем установить их заново:

    sudo apt remove llvm clang
    sudo apt install llvm clang libclang-dev llvm-dev

Профилактика

Чтобы избежать возникновения подобных проблем в будущем, рекомендуется придерживаться следующих практик:

  • Избегайте установки пакетов с номерами версий в их названиях. Вместо этого используйте обобщенные версии, чтобы избежать конфликтов.
  • Регулярно проверяйте и обновляйте зависимости ваших проектов, особенно при работе с библиотеками, связанными с компиляцией.
  • Поддерживайте чистую среду разработки, избегая установки ненужных пакетов, которые могут привести к конфликтам.

Заключение

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

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

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