4
我最近開始使用irony-mode
在emacs(24.3.1)中完成。不過,我似乎無法添加額外的系統包含路徑來打包。諷刺模式不拾取包含路徑
我有這樣的代碼在我的配置:
(defun ac-cc-mode-clang-hooks()
(yas/minor-mode-on)
(auto-complete-mode 1)
;; avoid enabling irony-mode in modes that inherits c-mode, e.g: php-mode
(when (member major-mode irony-known-modes)
(irony-mode 1))
;; set compiler flags to include header files
(setq irony-compile-flags '("-Iinc"))
(irony-reload-flags))
(add-hook 'c++-mode-hook 'ac-cc-mode-clang-hooks)
(add-hook 'c-mode-hook 'ac-cc-mode-clang-hooks)
諷刺意味的模式被正確安裝,完成完全適用於包括編譯器明確知道(即由echo "" | g++ -v -x c++ -E -
打印的一切),但另外包括路徑inc
路徑沒有被拿起(無論它是相對還是絕對路徑)。
但是,如果我將信息添加到.clang_complete
文件並使用C-c C-b
加載它,則包含路徑將被識別並使用。顯然,這是理想的設置,因爲
- 我不想創建一個
.clang_complete
文件的代碼,每個單件我正在 - 的
.clang_complete
文件不會自動加載少了。
有一些工作方法(不涉及每個項目的設置,我不想爲每個一段代碼項目管理文件)告訴irony-mode
到哪裏尋找頭文件?
這完全適用於全球(絕對)路徑。還有兩個問題:1)如何添加多個路徑?我是否使用''(「-I」「/ IncOne」「-I」「/ IncTwo」)',2)我認爲這不適用於相對路徑,因爲使用上面的代碼不會在子目錄'inc'。日誌文件說:在完成期間發現1個錯誤/警告。 /tmp/!home!elemakil!Temp!FooBar.cpp:2:10:致命錯誤:'SomeInc.h'文件未找到',所以我猜問題是將源複製到'/ tmp'使得相對無效。這可以解決嗎? – elemakil
1)是的。 2)你說得對,現在已經修好了,謝謝你的輸入。 3)不要猶豫在Github上提出問題,我偶然偶然發現了這個問題。 –
現在工作就像一個魅力! – elemakil