问题标签 [gnu-make]

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 投票
3 回答
1680 浏览

mingw - 使用 OS 语言安装的 gnu make

我在我的 Windows 机器上安装了最新的 GNU make。

安装程序决定将语言设置为操作系统语言,我没有得到提示。我希望它是英文的。我的操作系统是瑞典语。

我记得我在另一个 GNU 程序中遇到了类似的问题(不记得是哪个),这是通过添加值为“c”的环境变量“lang”来解决的。

如何将 GNU make 的语言切换为英语?

0 投票
1 回答
759 浏览

objective-c - GNUStep 使用来自 Xcode 项目的预编译(和前缀).pch 头文件?

我正在尝试使用 GNUStep-make 构建一个 Xcode 项目。目前该项目非常小(3 节课),但在接下来的几周内将增长到数百节课,所以我现在正努力把所有事情弄清楚并组织得井井有条。

Xcode 创建一个 ProjectName_Prefix.pch 文件,该文件是一个头文件:a) 预编译 b) 为我项目中的每个文件添加前缀;至少如果我理解正确的话。

现在,我如何告诉 GNUStep-make 在构建时如何处理这个文件?我已将它添加到 XXX_PRECOMPILED_HEADERS 变量中。

有了这个,构建失败并出现错误:

我的makefile中也有以下内容:

我不确定我在这里做错了什么。我基本上已经尝试按照预编译头文件的 GNUStep 文档进行操作。

我的项目的所有源文件都没有明确包含 Foundation 框架,因为这个头文件就是这样做的。

0 投票
3 回答
26136 浏览

makefile - 将一个目录下的所有C文件编译成单独的程序

有没有办法使用 GNU Make 将目录中的所有 C 文件编译成单独的程序,每个程序都被命名为源文件,没有 .c 扩展名?

0 投票
2 回答
183 浏览

makefile - 如何为gnu makefile中的一个文件去除-D?

我的 CXXFLAGS 中有“-Wredundant-decls”,但对于一个文件,我希望将其删除。

在我的 GNU makefile 中,我如何构建一个规则来仅删除 CXXFLAGS 的那部分。

我知道如何只为该文件添加,我会做这样的事情:

所以,理想情况下,我会做这样的事情(这不起作用)来删除它:

但是,也许有一些 $ 魔法,我可以构造某种 sed 或 perl 脚本来去除 -Wredundant-decls 并将 CXXFLAGS 设置为去除的值:

0 投票
4 回答
4327 浏览

android - 如何使用 Gnu makefile 为库编写 Android.mk

我想使用使用 Gnu 构建工具(gnu makefile)的大型第三方本机库制作一个 Android 应用程序。

我的问题是如何为这些库编写“Android.mk”文件,以便使用 Android 构建系统或 Android NDK 构建它们。

提前致谢

0 投票
1 回答
3165 浏览

makefile - 跳过某些目标的 makefile 依赖生成(例如 `clean`)

我有几个 C 和 C++ 项目都遵循我已经使用了一段时间的基本结构。我的源文件在 中src/*.c,中间文件在 中obj/*.[do],而实际的可执行文件在顶层目录中。

我的 makefile 大致遵循这个模板:

现在我正在为 Debian 系统打包它。我正在使用debuild构建 Debian 源代码包和pbuilder构建二进制包。该debuild步骤只需要执行clean目标,但即使这样也会导致生成和包含依赖文件。

简而言之,我的问题是:当我只想运行clean目标时,我能以某种方式阻止 make 生成依赖项吗?

0 投票
2 回答
2499 浏览

makefile - 如何让 automake 不那么难看?

我最近学会了如何使用 automake,我有点恼火的是我的编译命令来自一堆:

给一堆:

有什么办法可以清理这个吗?我通常可以很容易地挑选出警告信息,但现在要阅读的文字墙要大 3 倍,而且要怪异得多。

我知道我的标志是什么,所以让它对每个文件都说“编译 xxx.cpp”是完美的。

0 投票
2 回答
632 浏览

c - GNU Make - 对非程序代码的依赖

我正在编写的程序的一个要求是它必须能够信任配置文件。为了实现这一点,我使用了几种散列算法在编译时生成文件的散列,这会生成一个带有散列作为常量的标头。

对此的依赖非常简单,我的程序依赖于 config_hash.h,它有一个生成它的目标。

makefile 看起来像这样:

我正在使用 gcc 的 -M 选项,这对于处理依赖关系非常有用。如果我的标题发生变化,我的程序将被重建。

我的问题是,我需要能够判断配置文件是否已更改,以便重新生成 config_hash.h。我不太确定如何解释这种对 GNU make 的依赖。

我尝试将 config/config_file.cfg 列为 config_hash.h 的依赖项,并.PHONY为 config_file.cfg 提供目标但没有成功。显然,我不能依靠 -M 切换到 gcc 来帮助我,因为配置文件不是任何目标代码的一部分。

有什么建议么?不幸的是,我不能发布很多 Makefile,或者我会发布整个内容。

0 投票
2 回答
2013 浏览

makefile - 使用 gnu make 安装软件时如何检查已安装的库,例如 libpcap?

我正在开发一个依赖于 libpcap 的应用程序,并且想知道如何编写 gnu makefile,以便在继续安装我的应用程序之前检查机器上是否安装了 libpcap。

0 投票
1 回答
831 浏览

sed - 如何使依赖生成对 C 起作用?(也..解码这个 sed/make 语句!)

我有一个 make build 系统,我正试图破译别人写的。当我在 redhat 系统上运行它时出现错误,但在我的 solaris 系统上运行它时却没有。gmake 的版本是相同的主要版本(次要版本关闭)。

这是为了构建一个C项目,make系统有一个全局的Makefile.global被每个目录的本地Makefile继承

Makefile.global 包含所有目标,从

全局文件也有以下行

其中 LIB 构建库,BIN 构建二进制文件。

跳下我的目标

我认为这些都是我需要包括在内以回答我的问题的所有相关目标。

这些变量的定义:

我认为这涵盖了您需要的一切。基本上从名称中可以自我解释。

现在,据我所知,这是在 /lib/deps 中生成一个 .d 文件,其中包含对象和源依赖项。换句话说,对于utilities.a 库,我将获得一个utils.o 和utils.c 依赖堆栈,都在文件utils.d 中

我认为该文件中正在生成一些语法错误,因为我收到以下错误:

我不确定我的错误是在依赖项生成中,还是在更底层的部分,比如对象生成目标?

如果您需要更多信息,请告诉我,我将添加到帖子中