gnu-make

    0热度

    1回答

    我有点奇怪的大小写,我正在努力弄清楚。我有一个C++项目,我以一些.cpp文件开始,我需要从多个应用程序使用的多个远程目录中编译一些源文件。这并不理想,但这是我的开发组使用的传统目录/编译结构。 其他项目利用VPATH来实现这一点。但是,它们最终会对所链接的所需对象列表进行硬编码,而且这种方法对我来说看起来不够优雅或灵活。我想动态编译和链接所有内容。另一个潜在的复杂情况是,这些远程VPATH目录中

    2热度

    2回答

    GNU化妆允许1)并行执行和2)指定在同一调用几个目标: make -j4 clean all 但是,作为GNU使并行化的目标,一些竞争条件可能发生。插图: $ cat Makefile clean: @sleep 1 && rm -f foo all: foo @sleep 2 && cat foo foo: @echo '[email protect

    2热度

    1回答

    我试图将我的PGbouncer从1.5.4升级到1.7.2,但没有运气。它返回错误: # gmake CC lib/usual/tls/tls.c lib/usual/tls/tls.c: In function `tls_info_callback': lib/usual/tls/tls.c:295: error: structure has no member named `e

    0热度

    1回答

    我正在逐步验证我的编译输出,并希望能够在给定配方执行后退出。 如果原来的配方是 $(HEADER_BUILD)/mpversion.h: FORCE | $(HEADER_BUILD) $(Q)$(PYTHON) $(PY_SRC)/makeversionhdr.py [email protected] 我希望能够在最后添加一行像这样 $(HEADER_BUILD)/mpversio

    0热度

    1回答

    如果你读了GNU进行手动的Catalog of Rules部分,事实证明,它识别后缀之一是.out,并有一个内置的规则: %.out: % # commands to execute (built-in): @rm -f [email protected] cp $< [email protected] 这意味着,如果你有一个文件xyz在一个目录中,你可以通过简单地输入m

    1热度

    1回答

    状态考虑以下几点: all: mv info.h info.h.back generate_info.sh compile mv info.h.back info.h 如何强制使运行即使编译失败的最后一行? 我知道.DELETE_ON_ERROR,但这只涉及在失败时移除目标。 我也意识到在编译命令之前添加-的选项。不幸的是,这将使整个制作返回一个很好的错

    0热度

    2回答

    我有,我想停下来,如果文件不存在运行整个化妆生成文件的功能,或者至少目标是从执行: vaultfile = ./vault $(shell test -f $(1) || exit 1) define get_token $(shell test -f $1 && cat $1 || exit 2) endef a: token = $(call get_token,$(vault

    0热度

    2回答

    如何在GNU Makefile中创建非依赖假目标? 要求: 来检查一个特定的设置的规则 - 可以比下面的例子更加复杂。 如果此规则失败,则建立特定目标应失败。 如果这个规则成功了,只有修改了它们的源代码,才能建立特定的目标。 规则不可能是全球性的,因为该规则甚至不应该对非特异性指标 如果规则是每一个具体目标的编译规则之前插入这是可以实现的执行。 因为它们可能有很多特定的目标,所以我更愿意为此规则创

    1热度

    1回答

    是否可以将生成的变量用作GNU Make规则中的依赖项?我试图做 A := 1 2 3 B := a b c C := $(foreach X,$(A),$(foreach Y,$(B),$X-$Y)) a: echo A b: echo B $(C) : $(word 2,$(subst -, ,[email protected])) echo [e

    -2热度

    2回答

    我试图复制文件befoe编译(我有两个源文件具有相同的名称,因此我将这些文件复制到具有不同名称的文件),并在最后删除它们的MAKEFILE。 我正在尝试做下列事情,但可能在执行顺序中存在不匹配。 我该如何正确地做到这一点? all: copy_dup_files $(dst_dir) $(APP_TARGET_LIB) delete_dup_files copy_dup_files: