gpt4 book ai didi

具有多个目录的 Emacs 和 cscope

转载 作者:行者123 更新时间:2023-12-01 09:35:30 26 4
gpt4 key购买 nike

当我的源代码位于多个目录中时,如何在 Emacs 中设置 cscope?

假设我的 C++ 项目有多个路径:

  1. /path/to/my/code(和子目录)
  2. /path/to/other/code(和子目录)
  3. /path/to/static/linking/include/files(和子目录)
  4. /path/to/static/linking/lib/files'(和子目录)

我想使用 xcscope 在我的代码和我链接到的库中导航/查找符号。

instructions对于 xcscope.el 说我应该首先在 /path/to/my/code 运行 C-c s (Cscope->Create list and index) >,但我对如何让 cscope 索引其他路径感到困惑。

文档说我应该转到其他目录并运行 cscope -b,但是在那之后我应该做什么?

我查看了C-c s 构建的cscope.files 文件。我想我应该将我的其他路径添加到此文件,但此文件包含源代码文件列表(不是 目录)。

我是否必须手动编辑 cscope.files 以添加我想要索引的项目根目录之外的每个文件?

最佳答案

文档令人困惑。

我从 http://cscope.sourceforge.net/large_projects.html 得到了一个解决方案.仍然令人困惑。

cscope.files 的名字很贴切。它不是目录。它是文件,只是文件。这听起来令人生畏。如果您有数百个文件怎么办?然后,您必须将数百行(每个文件一行)写入 cscope.files。不开玩笑。

使用一些脚本使其自动化。例如,在 Linux 上,使用 bash 脚本和重定向 (>、>>、|) 运算符从任何和所有目录中选择文件并将其过滤到 cscope.files 中。cscope.files 所在的目录呢?如果您不包含这些文件,它只会在您打开该源目录中的项目(在 emacs 中,但可能适用于任何 IDE)时找到它们。因此,也包括它们,以便从任何地方轻松打开您的项目。选项“递归/-R”似乎很明显可以发送到 cscope-in​​dexer。不,没有很多根目录。什么也不做(可能可以用脚本或 elisp 或谁知道)。只需将这些文件(绝对路径)输入到 cscope.files 中。而且您可能必须确保每个项目只有一个 cscope.files。不要将它们相对于每个目录分开。或者,也许您可​​以调查一些事情。

请记住,如果您希望 cscope.files 从任何地方指向它,请在文件前包含/path/to/each/file/。 cscope 不是“聪明的”,它是愚蠢的,它只是指示在哪里看,它不知道在哪里寻找“文件名”,不知道它在哪里。你只是要求它调用 locate filename,当你给它一个单独的文件名,而没有特定 cscope.files 所在目录之外的 dir 路径时,它无论如何也做不到。

我希望有一种方法可以在 emacs 中使用 xcscope,只需添加它将编目和索引的目录,如 xcscope 文档和 emacs 菜单所建议的那样。但我没有成功地让它以那种方式工作。

关于具有多个目录的 Emacs 和 cscope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com