【问题标题】:Emacs and cscope with multiple directories具有多个目录的 Emacs 和 cscope
【发布时间】:2012-10-17 22:10:56
【问题描述】:

当我的源代码位于多个目录中时,如何在 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 在我的代码和我链接到的库中导航/查找符号。

xcscope.elinstructions 说我应该首先在 /path/to/my/code 运行 C-c s (Cscope->创建列表和索引),但是我对如何拥有cscope 索引的其他路径。

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

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

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

【问题讨论】:

    标签: emacs cscope


    【解决方案1】:

    文档令人困惑。

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

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

    使用一些脚本使其自动化。例如,在 linux 上,使用 bash 脚本和重定向 (>,>>,|) 运算符从任何和所有目录中选择和过滤文件到 cscope.files 中。 cscope.files 所在的目录呢?如果您不包含这些文件,它只会在您在该源目录中打开您的项目(在 emacs 中,但可能适用于任何 IDE)时找到它们。因此,也包括它们,以便从任何地方轻松打开您的项目。 选项“recursive/-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 菜单所建议的那样。但我没有成功地让它这样工作。

    【讨论】:

      【解决方案2】:

      软链接 (ln -s) 不起作用吗?为我工作。

      【讨论】:

        猜你喜欢
        • 2010-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多