Emacs、Cedet 和语义

发布于 2024-08-27 18:49:58 字数 370 浏览 6 评论 0原文

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

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

I've configured CEDET for emacs following Alex article (great!!).
Now, the questions:

  1. I've generated GTAGS with Gnu Global in my /usr/include, how can i check if semantic is using GTAGS?
  2. Can I keep my GTAGS in another directory and instruct semantic to use that dir?
  3. In C/C++ sources, completion on include statement (from system
    headers) doesn't list all available headers. Ok, this is a stupid
    problem.. but makes me think something is not working right

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦明 2024-09-03 18:49:58

您可以使用命令:

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 没有提供足够的信息来进行智能补全。

You can use the command:

M-x semantic-c-describe-environment RET

to find out about your include path and CPP macro settings.

To test GNU Global use, you can use:

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

to search for "printf" in in some project. Since your project (perhaps in /home/you/myproject) does not have printf in it, it will fail, but if you opened a file in /usr/include, and did the same command, it will hopefully identify printf.

A more general way to ask about GNU Global is with:

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

That all said, the GNU Global support is best in situations where you want to have lots and lots of preparsed files that you access infrequently. Once a header is accessed once (like for printf), then the GNU Global database won't be used anymore, because an equivalent Semantic database will have been created for it. This is necessary because GNU Global does not provide enough information to do smart completion.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文