簡體   English   中英

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

[英]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'文件

我究竟做錯了什么? 我使用的是emacs24flycheck.elpackage.elclang3.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM