Я попытался добавить путь к flycheck
c / c ++ — лязг, но это не сработало.
я кладу foo.h
в ~/local/include
и добавил следующие строки в init.el
:
(add-hook 'c++-mode-hook
(lambda () (setq flycheck-clang-standard-library "libc++")))
(add-hook 'c++-mode-hook
(lambda () (setq flycheck-clang-language-standard "c++1y")))
(add-hook 'c++-mode-hook
(lambda () (setq flycheck-clang-include-path
(list "$HOME/local/include/"))))
И в файле с именем test.cpp
я написал
#include <foo.h>
flycheck
сказал, что
Файл ‘foo.h’ не найден
Что я делаю неправильно? я использую emacs24
, flycheck.el
от package.el
а также clang3.4
,
использование expand-file-name
а также ~
чтобы ссылаться на пути в вашем домашнем каталоге:
(add-hook 'c++-mode-hook
(lambda () (setq flycheck-clang-include-path
(list (expand-file-name "~/local/include/")))))
Flycheck не использует системную оболочку для запуска Clang, а также не пытается расширить параметры оболочки в командной строке. Следовательно, $HOME
передается в прямом смысле в Clang, который, очевидно, не работает.
Я не хочу получать кредит от этого ответа, но это может быть полезно для кого-то.
Используя принятый ответ и комментарии, установите переменная муха с Переменные каталога:
У вас есть проект с исходным кодом C ++ в ~/myproject
,
Добавить файл ~/myproject/.dir-locals.el
со следующим содержанием:
((nil . ((eval . (setq flycheck-clang-include-path
(list (expand-file-name "~/myproject/include/")))))))
Это сработало для меня.