我试图添加包含路径到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/"))))
在我写的一个名为test.cpp的文件中
#include <foo.h>
flycheck说
‘foo.h’ file not found
我究竟做错了什么?我正在使用来自package.el和clang3.4的emacs24,flycheck.el.
解决方法
使用expand-file-name和〜来引用主目录中的路径:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-clang-include-path (list (expand-file-name "~/local/include/")))))
Flycheck不使用系统shell来运行Clang,也不会尝试在命令行中扩展shell参数.因此,$HOME从字面上传递给Clang,这显然不起作用.