11

在Alex 的文章之后,我已经为 emacs 配置了 CEDET (太棒了!!)。现在,问题:

  1. 我已经在我的 Gnu Global 中生成了 GTAGS /usr/include,如何检查语义是否使用 GTAGS?
  2. 我可以将我的 GTAGS 保存在另一个目录中并指示语义使用该目录吗?
  3. 在 C/C++ 源代码中,include 语句的完成(来自系统头文件)不会列出所有可用的头文件。好的,这是一个愚蠢的问题..但让我觉得有些事情不正常
4

1 回答 1

16

您可以使用以下命令:

M-x semantic-c-describe-environment RET

了解您的包含路径和 CPP 宏设置。

要测试 GNU Global 的使用,您可以使用:

M-x semanticdb-test-gnu-global RET printf RET

在某个项目中搜索“printf”。由于您的项目(可能在 /home/you/myproject 中)没有 printf,它会失败,但如果您在 /usr/include 中打开一个文件并执行相同的命令,它有望识别 printf。

询问 GNU Global 的更一般的方法是:

M-x cedet-gnu-global-version-check RET

综上所述,GNU Global 支持最适合您希望拥有大量不常访问的预解析文件的情况。一旦一个标头被访问一次(比如 printf),那么 GNU 全局数据库将不再被使用,因为已经为它创建了一个等效的语义数据库。这是必要的,因为 GNU Global 没有提供足够的信息来进行智能补全。

于 2010-04-08T21:41:18.833 回答