- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以,我已经使用 CEDET 一段时间了,总的来说效果很好。我正在从将它与 C 一起使用转向 C++,特别是针对 OpenCV 2.3 (linux),但我遇到了问题。我将 emacs24 与最新开发版本的 CEDET 一起使用。
无法解析某些符号及其成员,如:KeyPoint、Mat、
等
然而,许多函数符号都被解析了,例如 line()、imshow()、imread()
等。
我正在寻找有关如何调试我的设置错误的帮助,或者正在寻找已成功设置 opencv c++ api 的人。
这是我的相关 cedet 配置:
;; brian-cedet.el
;; Contains my personal configuration for CEDET
;; Loads for CEDET
(load-file "/home/terranpro/code/cedet/common/cedet.el")
(add-to-list 'Info-default-directory-list
(expand-file-name "~/code/cedet/common"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/common"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/semantic/doc"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/eieio"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/speedbar"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/cogre"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/ede"))
(add-to-list 'Info-directory-list
(expand-file-name "~/code/cedet/srecode"))
(require 'ede)
(global-ede-mode t)
;;(semantic-load-enable-minimum-features)
(semantic-load-enable-code-helpers)
;;(semantic-load-enable-gaudy-code-helpers)
(semantic-load-enable-excessive-code-helpers)
;;(semantic-load-enable-semantic-debugging-helpers)
(require 'semantic-ia)
(require 'semantic-gcc)
(require 'semantic-sb)
(require 'semanticdb)
(global-semanticdb-minor-mode 1)
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
(require 'semantic-c)
(setq semantic-load-turn-useful-things-on t)
(semantic-add-system-include "/usr/include/glib-2.0" 'c-mode)
(semantic-add-system-include "/usr/include/glib-2.0" 'c++-mode)
(semantic-add-system-include "/usr/include/gtk-3.0" 'c-mode)
(semantic-add-system-include "/usr/include/gtk-3.0" 'c++-mode)
(semantic-add-system-include "/usr/local/include/" 'c-mode)
(semantic-add-system-include "/usr/local/include/" 'c++-mode)
(semantic-add-system-include "/usr/local/include/opencv" 'c-mode)
(semantic-add-system-include "/usr/local/include/opencv2" 'c++-mode)
(semantic-add-system-include "/usr/local/include/opencv" 'c-mode)
(semantic-add-system-include "/usr/local/include/opencv2" 'c++-mode)
(add-to-list 'semantic-lex-c-preprocessor-symbol-file
'"/usr/local/include/opencv2/core/types_c.h")
(add-to-list 'semantic-lex-c-preprocessor-symbol-file
'"/usr/local/include/opencv2/imgproc/types_c.h")
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_PROP_RW" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS_W_SIMPLE" . ""))
(defun my-cedet-hook ()
(local-set-key [(control return)] 'semantic-ia-complete-symbol)
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-c>" 'semantic-complete-analyze-inline)
(local-set-key "\C-c=" 'semantic-decoration-include-visit)
(local-set-key "\C-cj" 'semantic-ia-fast-jump)
(local-set-key "\C-cq" 'semantic-ia-show-doc)
(local-set-key "\C-cs" 'semantic-ia-show-summary)
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle)
(local-set-key "\C-c+" 'semantic-tag-folding-show-block)
(local-set-key "\C-c-" 'semantic-tag-folding-fold-block)
(local-set-key "\C-c\C-c+" 'semantic-tag-folding-show-all)
(local-set-key "\C-c\C-c-" 'semantic-tag-folding-fold-all))
(add-hook 'c-mode-common-hook 'my-cedet-hook)
(add-hook 'emacs-lisp-mode-hook 'my-cedet-hook)
(add-hook 'lisp-interaction-mode-hook 'my-cedet-hook)
(global-semantic-tag-folding-mode 1)
最佳答案
我现在有一个工作配置;感谢来自 cedet-devel 邮件列表的 Alex Ott 和 David Engster。要注意他们的更正,我的配置中有一些“不需要并且可能有害”的行。更新配置后,删除 ~/.semanticdb 中的所有文件 并重新启动 emacs,一切都按预期工作!
我还包含了一个用于测试配置的示例 cpp 文件。谢谢大家!
(load-file "/home/terranpro/code/cedet/common/cedet.el")
(require 'ede)
(global-ede-mode t)
;;(semantic-load-enable-minimum-features)
(semantic-load-enable-code-helpers)
;;(semantic-load-enable-gaudy-code-helpers)
(semantic-load-enable-excessive-code-helpers)
;;(semantic-load-enable-semantic-debugging-helpers)
;; CEDET-devel mailing list said these werent needed
;; and possibly hurtful
;;(require 'semantic-ia)
;;(require 'semantic-gcc)
;;(require 'semantic-sb)
;;(require 'semanticdb)
;;(global-semanticdb-minor-mode 1)
;;(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
(require 'semantic-c)
(setq semantic-load-turn-useful-things-on t)
(semantic-add-system-include "/usr/local/include/" 'c-mode)
(semantic-add-system-include "/usr/local/include/" 'c++-mode)
(add-to-list 'semantic-lex-c-preprocessor-symbol-file
'"/usr/local/include/opencv2/core/types_c.h")
(add-to-list 'semantic-lex-c-preprocessor-symbol-file
'"/usr/local/include/opencv2/imgproc/types_c.h")
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_PROP_RW" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS_W_SIMPLE" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS_W" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_EXPORTS_W_MAP" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CV_INLINE" . ""))
(defun my-cedet-hook ()
(local-set-key [(control return)] 'semantic-ia-complete-symbol)
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-c>" 'semantic-complete-analyze-inline)
(local-set-key "\C-c=" 'semantic-decoration-include-visit)
(local-set-key "\C-cj" 'semantic-ia-fast-jump)
(local-set-key "\C-cq" 'semantic-ia-show-doc)
(local-set-key "\C-cs" 'semantic-ia-show-summary)
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle)
(local-set-key "\C-c+" 'semantic-tag-folding-show-block)
(local-set-key "\C-c-" 'semantic-tag-folding-fold-block)
(local-set-key "\C-c\C-c+" 'semantic-tag-folding-show-all)
(local-set-key "\C-c\C-c-" 'semantic-tag-folding-fold-all))
(add-hook 'c-mode-common-hook 'my-cedet-hook)
(add-hook 'emacs-lisp-mode-hook 'my-cedet-hook)
(add-hook 'lisp-interaction-mode-hook 'my-cedet-hook)
(global-semantic-tag-folding-mode 1)
以及 CPP 测试文件:
#include <stdio.h>
#include <vector>
#include <string>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
KeyPoint k;
Mat m;
// m should have members like m.clone()
// k has members like k.pt (Point2f pt)
return 0;
}
关于用于 OpenCV C++ 接口(interface)的 Emacs CEDET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029872/
我让 CEDET 大部分时间在 emacs 24.2 上工作,最新的来自 bzr存储库。 当我搜索符号或定义时,我看到 cedet 迷你缓冲区显示通过大量文件进行解析,其中一些不作为头文件存在,这些文
我的工作计算机(Ubuntu 8.10)安装了 CEDET 版本 1.0pre4,我正在尝试在我的本地目录中安装最新版本的 CEDET(1.0pre6)(最终目标是将 ECB 升级到最新版本)。 不幸
我想添加 openMPI 库头文件的路径。因此,在我发现所有 openMPI 头文件都在/usr/lib/openmpi/include/* 之后,我将这两行添加到了我的 .emacs 中: (sem
我将 ECB 与 Cedet 一起使用 - 语义搜索引擎在其缓存文件中存储有关我访问的文件的标签。 我也在使用欧洲央行的 left-symboldef layout - 显示光标所在标签的定义。为了实
我使用最新的 CEDET 和 emacs 23.2。我发现 CEDET 有问题,不知何故,我当前的编辑缓冲区在没有任何错误消息的情况下使用语义加载启用guady-code-helpers 模式被杀死。
我正在使用 Emacs 和 CEDET 并自动完成代码完成。最初我设置了 CEDET,所以它每次在 Emacs 启动时加载。 但是,这花了很长时间,所以我认为在需要时加载它会很聪明,即 - 在我的情况
尽我所能,我无法让 CEDET 做任何事情。 Emacs 24.3。我下载了最新的 CEDET 快照。我从他的底部(不是这样)Gentle Introduction 中获取了 Alex Ott 的设置
我已经使用 CEDET 1.0 和 ECB 2.40 设置了 emacs 23.1.50.1(很大程度上受到了亚历克斯·奥茨在 http://github.com/alexott/emacs-conf
我将 CEDET(最新的 CVS)与几个中等规模的项目(每个项目几百 kLOC,主要是 C,但也有一些 C++)一起使用,有时会遇到长时间的停顿,系统在几秒钟内完全没有响应。更罕见的是,它完全失控,我
在我的 .emacs 文件中我有: (add-to-list 'load-path (expand-file-name "emacs/site/jde/lisp")) (add-to-list 'lo
我的测试设置: 英特尔双核 3GHz、Windows XP 32 位、Emacs 23.2.1、CEDET v1.0(按照 INSTALL 文档中的描述进行字节编译)。 Emacs init 文件只包
我希望每次打开 .cpp 文件时,语义标签折叠都会被激活。我正在使用最新版本的 cedet(加载 cedet-devel-load.el)。我有 (semantic-mode 1) (require
我读过亚历克斯·奥特的 fantastic guide to CEDET对于 Emacs,我想我知道如何正确设置我的 EDE 项目。 但是,当我尝试跳转到 时本地 符号(例如 C++ 中的 main(
我有以下设置:我在自定义构建系统下处理 C++ 项目,并且源代码目录在我的开发机器上不是很稳定,因为我经常在他们自己的目录中检查某些项目的特定版本(关闭我存储所有源代码的单个源目录)用于维护或新功能开
试图通过使用 EDE 生成 Makefile 来理解 EDE 的工作原理 包含特定目标下的多个目标的项目目录 等级制度。我运气不好,信息页面似乎也没有 回答我的问题。 我的目录结构类似于: (星号 (
我必须使用 C/C++ 构建环境,该环境会到处丢弃中间文件: .i 包含 C 预处理器输出的文件(大致是原始 C) .s 包含 C 汇编程序输入的文件 CEDET(我假设是语义分析器)最终找到了这些文
我想使用 cedet 包 (emacs) 中的语义代码折叠。我安装了 1.1 版本并在 .emacs 中添加了以下行: (load-file "~/software/cedet-1.1/common/
我已经按照 Alex article 为 emacs 配置了 CEDET (伟大的!!)。现在,问题: 我已经在我的 /usr/include 中使用 Gnu Global 生成了 GTAGS,我如何
我是 emacs cedet 用户。我得到了 cedet 的大力帮助。 但是,我发现在 cedet 中处理 #ifdef 时出现一些错误。 不确定它是来自 cedet 内部还是我的错误配置。 我在 C
我在 X86_64-pc-gnu-linux (ubuntu 10.04) 上使用 emacs 23.1.1 并点击著名的链接 http://alexott.net/en/writings/emacs
我是一名优秀的程序员,十分优秀!