c++ - Emacs auto-complete-c-headers。符号作为变量的值是无效的

标签 c++ c emacs autocomplete

我在 Windows 7 上使用 Emacs 24.3。我安装了带有 ELPA 的 auto-complete-modeautocomplete-c-headers

我在 .emacs 中添加了:

(require 'auto-complete)
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20140208.653")    ; This may not be appeared if you have already added.
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20140208.653/dict")
(require 'auto-complete-config)
(ac-config-default)

;|---------------------------------------------------------------+
;|auto-complete c/c++ headers
;|---------------------------------------------------------------+
(add-to-list 'load-path   
         "~/.emacs.d/elpa/auto-complete-c-headers-20140325.835") 
(defun my:ac-c-headers-init ()
  (require 'auto-complete-c-headers)
  (add-to-list 'ac-sources 'ac-source-c-headers)
  (add-to-list 'aсhead:include-directories '"d:/DevTools/env/MinGW/lib/gcc/mingw32/4.8.1/include")
)
(add-hook 'c++-mode-hook 'my:ac-c-headers-init)
(add-hook 'c-mode-hook 'my:ac-c-headers-init)

当我在 C++ 模式下运行时,它显示错误

Symbol's value as variable is void

最佳答案

首先通过运行以下命令在您的计算机上找到 C/C++ header 。

gcc -xc++ -E -v -

在我的 ArchLinux 上,它们位于此处

/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include /usr/本地/包括 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed /usr/include

那么对我有用的完整 C/C++ 自动完成就是这样。

;; C++自动完成模式 (需要“自动完成”) (需要“自动完成配置”) (ac-config-default) ; 一个初始化自动完成-c-headers 并为 c/c++ Hook 调用的函数 (defun my:acc-c-header-init () (需要“自动完成-c-headers”) (添加到列表 'ac-sources 'ac-source-c-headers) (添加到列表 'ahead:include-directories'"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9 .1 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/x86_64-unknown-linux-gnu /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/backward /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include /usr/本地/包括 /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed /usr/包括“ ) )

试试吧。

关于c++ - Emacs auto-complete-c-headers。符号作为变量的值是无效的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231619/

相关文章:

c++ - COM 函数返回 E_POINTER

c++ - 为什么模板 <typename...> 不被识别为可通过模板 <template<typename> typename> 实例化?

c++ - 为什么 mingw 4.4 说 <random> 需要 c++0x?

c++ - 重载删除,纯虚函数调用

c++ - 使用腻子远程访问颜色编码 emacs

c - "more"作为管道命令的目标会破坏 bash

c++ - 一个union需要多少内存

c - 需要帮助处理 C 中的二维结构数组

缓冲区之间的 Emacs 选项卡

emacs - emacs下使用gdb时的缓冲区控制