use*_*819 9 c++ emacs flycheck
我试图将包含路径添加到flycheckc/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 次 |
| 最近记录: |