use*_*819 9 c++ emacs flycheck
我试图将包含路径添加到flycheck
c/c ++ - clang,但它没有用.
我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/"))))
Run Code Online (Sandbox Code Playgroud)
并在一个名为test.cpp
我写的文件中
#include <foo.h>
Run Code Online (Sandbox Code Playgroud)
flycheck
说
找不到'foo.h'文件
我究竟做错了什么?我正在使用emacs24
,flycheck.el
从package.el
和clang3.4
.
lun*_*orn 10
使用expand-file-name
和~
引用主目录中的路径:
(add-hook 'c++-mode-hook
(lambda () (setq flycheck-clang-include-path
(list (expand-file-name "~/local/include/")))))
Run Code Online (Sandbox Code Playgroud)
Flycheck不使用系统shell来运行Clang,也不会尝试在命令行中扩展shell参数.因此,$HOME
从字面上传递给Clang,这显然不起作用.
我不想通过这个答案获得荣誉,但它可能对某人有用。
使用接受的答案和评论来设置带有目录变量的flycheck变量:
您有一个包含 C++ 源代码的项目~/myproject
。
添加~/myproject/.dir-locals.el
具有以下内容的文件:
((nil . ((eval . (setq flycheck-clang-include-path
(list (expand-file-name "~/myproject/include/")))))))
Run Code Online (Sandbox Code Playgroud)
那对我有用。
归档时间: |
|
查看次数: |
11191 次 |
最近记录: |