emacs lsp c-mode: Команда "clangd" отсутствует на пути

Я хочу использовать c-режим Emacs LSP, но получаю сообщение об ошибке "Команда" clangd "отсутствует на пути".

Для установки я сделал следующие шаги:

  1. Получите пакет lsp от melpa-stable
  2. Получите company-lsp от melpa-stable
  3. Получите ccls, используя homebrew
  4. Добавьте в мой файл.emacs следующее:

    (require 'lsp-mode)(add-hook'rust-mode-hook #'lsp)(add-hook'c-mode-hook #'lsp)(require'company-lsp)(push 'company-lsp company- бэкэнды)

Я установил llvm (который должен включать clang) с помощью homebrew и добавил его путь в качестве переменной среды.

Кто-нибудь знает, почему я получаю эту ошибку?

1 ответ

Мне только что удалось его настроить.

Проблема в том, что в os x ваши переменные окружения не импортируются правильно при использовании графического интерфейса emacs. В частности, если вы попробуете оценить в своем emacs

(getenv "PATH")

вы получите результат, отличный от того, который вы получите, запустив

echo $PATH

в вашем терминале.

Я решил это, установив https://github.com/purcell/exec-path-from-shell, как предлагается здесь.

Наконец, дважды проверьте (даже если вы упомянули, что сделали это), что вы не только установили llvm, но и правильно добавили его в свой путь, запустив

brew install llvm
ln -s "$(brew --prefix llvm)/bin/clangd" "/usr/local/bin/clangd"

как предлагается здесь

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