我最近开始使用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
寻找头文件?
答案 0 :(得分:4)
您可以在此处查看:https://github.com/Sarcasm/irony-mode#i-got-an-error-due-to-stdargh-how-to-solve-this
变量irony-libclang-additional-flags
应该满足您的需求。
它应该可以在不调用irony-reload-flags
的情况下工作。
虽然它不是缓冲区局部变量,所以你不需要把它放在钩子里。
我会推荐以下内容:
(setq irony-libclang-additional-flags
(append '("-I" "inc") irony-libclang-additional-flags))