如何添加包含路径到flycheck c / c -clang?

我试图添加包含路径到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,这显然不起作用.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...