标签: makefile

在makefile中转义

我正在尝试在makefile中执行此操作,但它失败的可能性非常大:

M_ARCH := $(shell g++ -dumpmachine | awk '{split($1,a,"-");print a[1]}')
Run Code Online (Sandbox Code Playgroud)

你知道为什么吗?我想它与逃避有关,但是在哪里和哪里?

makefile g++ escaping gnu-make

81
推荐指数
2
解决办法
4万
查看次数

GNU make:作业数量是否应该等于系统中的CPU核心数量?

关于GNU make中的作业数量是否应该等于核心数量似乎存在争议,或者如果您可以通过添加一个可以排队等待而其他人"工作"的额外作业来优化构建时间.

使用-j4-j5四核系统更好吗?

您是否看过(或已完成)支持其中一种或哪种的基准测试?

makefile gnu-make

80
推荐指数
6
解决办法
6万
查看次数

Makefile中有什么区别:=和=?

对于Make中的变量赋值,我看到:=和=运算符.他们之间有什么区别?

makefile gnu-make colon-equals

78
推荐指数
5
解决办法
3万
查看次数

如何使用SRC,OBJ和BIN子目录为C项目创建Makefile?

几个月前,我想出了以下Makefile针对学校作业的通用:

# ------------------------------------------------
# Generic Makefile
#
# Author: yanick.rochon@gmail.com
# Date  : 2010-11-05
#
# Changelog :
#   0.01 - first version
# ------------------------------------------------

# project name (generate executable with this name)
TARGET   = projectname

CC       = gcc -std=c99 -c
# compiling flags here
CFLAGS   = -Wall -I.

LINKER   = gcc -o
# linking flags here
LFLAGS   = -Wall

SOURCES  := $(wildcard *.c)
INCLUDES := $(wildcard *.h)
OBJECTS  := $(SOURCES:.c=*.o)
rm       = rm -f

$(TARGET): obj
    @$(LINKER) …
Run Code Online (Sandbox Code Playgroud)

c makefile

78
推荐指数
2
解决办法
6万
查看次数

如何在GNU make中使用多个扩展名更改列表中每个文件的扩展名?

在GNU makefile中,我想知道是否有可能通过文件列表输入来创建带有新扩展名的文件列表输出.

在输入中,我得到这个列表:

FILES_IN=file1.doc file2.xls
Run Code Online (Sandbox Code Playgroud)

我想在FILES_IN变量的makefile中构建这个变量:

FILES_OUT=file1.docx file2.xlsx
Run Code Online (Sandbox Code Playgroud)

可能吗 ?怎么样 ?

这很困难因为我必须解析文件列表,并检测每个扩展名(.doc,.xls)以将其替换为正确的扩展名.

makefile gnu-make

78
推荐指数
1
解决办法
5万
查看次数

"make oldconfig"在Linux内核makefile中完全做了什么?

任何人都可以解释目标"oldconfig"在Linux内核makefile中的作用吗?我看到它在一些构建文档中引用但从未解释它究竟做了什么.

linux makefile linux-kernel

75
推荐指数
4
解决办法
9万
查看次数

有希望的替代品?

多年来我一直在使用make和makefiles,虽然这个概念很合理,但实现还是有所不足.

有没有人找到任何好的替代方案,使不会使问题过于复杂?

build-automation makefile

74
推荐指数
7
解决办法
4万
查看次数

如何在Makefile中将$ dir添加到$ PATH?

我想编写一个运行测试的Makefile.测试位于"./tests"目录中,要测试的可执行文件位于"./bin"目录中.

当我运行测试时,他们没有看到exec文件,因为目录./bin不在$ PATH中.

当我做这样的事情时:

EXPORT PATH=bin:$PATH
make test
Run Code Online (Sandbox Code Playgroud)

一切正常.但是我需要更改Makefile中的$ PATH.

简单的Makefile内容:

test all:
    PATH=bin:${PATH}
    @echo $(PATH)
    x
Run Code Online (Sandbox Code Playgroud)

它正确打印路径,但是找不到文件x.

当我手动执行此操作时:

$ export PATH=bin:$PATH
$ x
Run Code Online (Sandbox Code Playgroud)

一切都好.

我怎么能改变Makefile中的$ PATH?

linux makefile

74
推荐指数
3
解决办法
8万
查看次数

Makefile - 缺少分隔符

可能重复:
发生错误:缺少分隔符

在makefile中有这个代码:

PROG = semsearch
all: $(PROG)
%: %.c
gcc -o $@ $< -lpthread

clean:
rm $(PROG)
Run Code Online (Sandbox Code Playgroud)

和错误

missing separator. stop.
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

makefile gnu-make

73
推荐指数
1
解决办法
13万
查看次数

如何在Makefile中获取脚本?

有没有更好的方法从makefile中获取设置env变量的脚本?

FLAG ?= 0
ifeq ($(FLAG),0)
export FLAG=1
/bin/myshell -c '<source scripts here> ; $(MAKE) $@'
else
...targets...
endif
Run Code Online (Sandbox Code Playgroud)

shell makefile

71
推荐指数
6
解决办法
6万
查看次数