【问题标题】:Emacs EDE - Automake and the Order of SubdirectoriesEmacs EDE - Automake 和子目录的顺序
【发布时间】:2016-07-25 19:04:38
【问题描述】:

我将 Emacs 与 EDE 一起使用。我有一个小型 C++ 项目,有两个子目录 includesrc

project/
├── include/
└── src/

我在include/ 中有共享库目标,src/ 中的程序目标需要这些目标。即,我想在编译src/ 中的任何目标之前编译include/ 中的所有目标。目前,项目的顶级目录中没有目标。

最初,在项目的顶级目录中,EDE 将 subdirs 指令 SUBDIRS 设置为

SUBDIRS= src/ include/

Makefile.am。使用make 编译后,编译器会抱怨缺少共享库的规则(因为它们尚未编译)。如果我手动将指令更改为

SUBDIRS= include/ src/

一切正常。

现在我的问题是:我可以使用 EDE 处理 Emacs 中子目录的遍历顺序吗?

谢谢, 多米尼克

【问题讨论】:

    标签: c++ emacs automake


    【解决方案1】:

    我非常建议不要从 automake 项目开始使用子目录。不仅你不会有规则依赖问题,而且一般recursive make is considered harmful。另外,不使用递归自动生成要快得多。

    供参考,我之前写过how to use non-recursive automake

    【讨论】:

    • 谢谢。这肯定是一个更好的方法。但是,我想这对于 EDE 来说是不可能的。请纠正我,如果是的话。 EDE 自然会为每个子文件夹创建Makefile.am 文件,并将它们与项目顶部文件夹中的递归Makefile.am 组合起来。
    • 听起来 EDE 是在以前的时代创建的,最好避免使用 :( 如果它创建了一个递归构建系统,它可能会给您带来比解决问题更大的伤害。
    • 您仍然可以遵循非递归原则,将项目细分为目录。我将 automake sn-ps(例如 plug.mk.am)放入子目录,然后使用“include”指令将它们全部包含到顶部 Makefile.am 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多