[英]How to add include path to 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'文件
我究竟做錯了什么? 我使用的是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不使用系統shell來運行Clang,也不會嘗試在命令行中擴展shell參數。 因此, $HOME
從字面上傳遞給Clang,這顯然不起作用。
我不希望得到這個答案,但它可能對某人有用。
使用接受的答案和注釋通過目錄變量設置flycheck 變量 :
您在~/myproject
有一個帶有C ++源代碼的項目。
使用以下內容添加~/myproject/.dir-locals.el
文件:
((nil . ((eval . (setq flycheck-clang-include-path
(list (expand-file-name "~/myproject/include/")))))))
這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.