问题标签 [multiple-makefiles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
697 浏览

makefile - 为多个操作系统创建一个makefile,这个make(ext?)不起作用?

我有一个使用 mingw32 构建的工作 makefile。现在我将该makefile重命名为Makefile.w32(来源-> http://pastie.org/319964

现在我有一个带有以下内容的 Makefile。问题是,它没有构建我的源

结果:

在我看来,它不喜欢 Makefile.w32 扩展名。我不明白为什么它没有建立。它很明显进入了我的“make Makefile.w32”行。

0 投票
4 回答
10046 浏览

makefile - makefile调用makefile错误

我有一个有效的品牌,我有平台代码,并且喜欢文件夹中每个操作系统的几个品牌。现在我有一个可以工作的makefile。我将它重命名为 Makefile.ws 并在 Makefile 中写了这个

我运行它并收到此错误

奇怪的是,清洁工作完美。然后我决定写“make -f Makefile.w32 mingw32”,但它不能正常工作。事实上,它创建了一个名为 mingw32 的文件夹,我认为这很奇怪。

至于 mingw32 规则,我只是复制我怀疑是用于构建的主要/正常规则的构建

完整的 .w32 源代码在这里 http://pastie.org/320035

0 投票
3 回答
3249 浏览

makefile - 当有更改时,如何在调用子构建时检查依赖关系?

如果我有一个调用另一个 makefile 的 makefile,如何让主 makefile 正确检查从属 makefile 的依赖项是否已更改?

例如,如果我有规则

这会在我构建可执行“服务器”的子目录中调用 make。但是,如果我更改了组成服务器的文件之一,则父 make 不会看到更改并拒绝重建服务器 - “make: `server' 是最新的。”

如何让主 makefile 正确检测其中一个依赖文件(例如 $(SERVERDIR)/server.c 之类的文件)何时发生更改?

0 投票
2 回答
3840 浏览

makefile - 使子目录失败使不停止构建

我有一个设置,其中 make 正在通过一堆子目录并在这些目录中进行制作。我希望它立即停止构建失败。下面的代码片段说明了这一点。有人可以指出我应该如何设置makefile或一些关于从顶层到子目录构建的文档的正确方向吗?

0 投票
2 回答
1466 浏览

gnu-make - 需要帮助 w/ 恼人的 Makefile 错误 -- g++: g++ 和 shell 错误 -- 和 Multi-Makefile 设计建议

我有一个生成文件:

在创建并填充目录结构之后调用第二个 makefile。

第二个makefile如下:

我承认我在 Makefiles 有点像新手。我想就如何简化这些文件(没有太多“魔法”)以及如何修复这两个错误提出建议......

首先,我必须说一切正常,可以这么说。当我构建目标时,它会正确创建所有目录并生成可执行文件。当我触摸基础级源目录中的文件时,我的所有文件都会被正确复制并重新编译。所以可以说这些不是“真正的”错误,只是我想摆脱的烦人的错误文本......

第一个错误发生在我运行make molecule_test需要它做某事的构建时。无论它需要做什么都会完成,但我也得到:

..AGAIN 构建成功,正确创建可执行文件

我得到的第二个错误发生在无事可做时……发生这种情况时,我得到:

请温柔...我已经阅读了基本的 makefile 教程,包括 gnu makefile 教程,但是在创建一个带有少量本地源的小程序和一个需要嵌套目录、数据的大程序之间似乎有一个飞跃文件等。我正在努力实现这一飞跃......不幸的是,我没有过去代码的最佳实践生成文件,因为我在大学的一个小型研究小组,而不是企业氛围。

我的基本方法是使用以下内容创建一个基本目录

顶层 makefile 在 build 目录中创建一个子目录,复制所需的源文件(例如,对于特定的测试程序和所需的数据文件,以及一个 makefile 来制作所有源文件。顶层 makefile 然后调用 build-level makefile。

我愿意接受有关如何简化此过程的想法,但如果我们首先解决错误,我将不胜感激。

提前致谢!!!

PS 我在 Centos 5.4、GNU Make 3.81、gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-44) 上运行 .... GNU Make 和 gcc 都是 64 位版本...

0 投票
2 回答
830 浏览

multiple-makefiles - 是否有 Make 调试器?我需要弄清楚别人的makefile

我需要为非常复杂的、多层的 makefile(大量包含文件、大量目标、大量变量)添加一些功能,这些文件由当然不再与公司合作的其他人编写。这里有一些人了解其中的一部分,但不是全部。

是否有一个 Make 调试器,我可以单步执行它,或者有一些等效的方法来跟踪编译流经的许多文件和目标的执行?还是有其他方法可以了解这件事是如何工作的?

0 投票
2 回答
10384 浏览

makefile - 如何在生成文件中动态重命名目标文件

我对makefile非常陌生。我之前做过的最复杂的任务是在已经设计好的 makefile 中包含新的 .h 和 .cpp 或 .c。

我必须将项目的编译过程从 Visual Studio 移植到 gcc,并且已经有一个同事为此编写的解决方案,但他使用 4 个 bash 脚本和一个 makefile 来编译解决方案。

我没有这样做,而是在寻找使其更易于维护的解决方案。我承认我的问题可能非常愚蠢,但我无法在任何地方找到它,也无法正确理解它。

在下面的目标中:

我想测试正在创建的 .o 是否已经存在并将其重命名为其他名称。这是必要的,因为在项目中有几个同名但内容不同的源文件。

例如,如果当前正在编译的 .cpp 名为 file.cpp 并且将生成的对象是 file.o,则该规则应测试 file.o 是否已存在并将当前 file.o 重命名为其他名称。

如果您知道任何解释这一点的好教程,请告诉我。我发现了很多示例,这些示例显示了如何对按该规则编译的当前文件进行测试,但没有一个示例会重命名对象 .o。

在此先感谢您对此处写的任何“愚蠢”表示歉意。:-)

0 投票
1 回答
1995 浏览

makefile - 如何从终端覆盖makefile中的变量

我创建了一个简单的makefile,即

我在其中运行 makefile 的目录包含三个文件:hello.c add.c multiply.c factorial.c 和 subtraction.c。

当我使用make命令在终端中编译它时,会打印 hello。现在我想在程序中进行更改,以便当我编写“make add”或“make multiply”或“make factorial”时,相应的程序将编译。

0 投票
0 回答
168 浏览

makefile - 递归调用另一个makefile后的奇怪行为

我在项目的根目录中有一个主生成文件。在包含目录中还有另一个 makefile 。第二个 makefile 使用 include 关键字在我无法控制的其他项目中调用其他一些 makefile。我不能直接包含这个makefile,因为它有一些与我拥有的目标同名的目标。作为一种解决方法,我决定使用递归调用。当我通过 shell 运行这个 makefile 时,使用以下命令,它运行良好:

但是当我如下通过主 Makefile 调用它时,它的行为不正常,这意味着它报告了一些项目特定的错误,这些错误源于第二个 makefile 中包含的文件,这些文件很难找到。

我也尝试了以下行,但没有帮助:

我认为递归调用和直接调用之间应该有区别,但我不知道它是什么。

0 投票
1 回答
307 浏览

android - 每种架构都有不同的 make 文件 - Android NDK

我的目标是使用 NDK 编译的 c/c++ 代码超过 1 个架构,问题是我需要对我的 make 文件有一个清晰的组织,我还必须根据架构 NDK 不同地设置相同的环境变量是编译时的目标。

我怎样才能为每个架构使用不同的 makefile?