我最近开始使用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在哪里查找头文件?
发布于 2013-12-04 14:24:29
你可以在这里看看: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))https://stackoverflow.com/questions/20266303
复制相似问题