我的问题是一个非常简单的问题,我只想将非源代码的所有内容导出到bin文件夹,但我找到的所有答案似乎都有松散的复杂makefile代码块,而没有任何指示放置它的位置或者非常复杂的makefile。我没有make文件的经验,文档似乎非常差,所以如果能给我这个问题最简单的答案,我会非常高兴。
#
# Makefile for 2INC0 Interprocess Communication
#
# (c) Fontys 2010, Joris Geurts
#
BIN=./bin/
BINARIES = $(BIN)prime
CC = gcc
CFLAGS = -Wall -g -c
LDLIBS = -lrt -lX11
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $(BIN)$@
all: $(BINARIES)
clean:
rm -f *.o $(BINARIES)
prime: prime.o
prime.o: prime.c prime.h
答案 0 :(得分:1)
尝试此修改:
$(BIN)%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
$(BIN)prime: $(BIN)prime.o
$(BIN)prime.o: prime.h
答案 1 :(得分:0)
(几乎普遍遵循的)约定是有一个特殊的目标install
,它无条件地将构建树中的所有必需文件复制到位。那个地方通常可以用变量配置。
这样,您可以在完成构建和安装后随时删除构建树。
因此,如果您需要复制的所有文件都是可执行文件,那么您将获得以下内容:
DESTDIR = /usr/local
OBJS = $(*.c:%c=%.o)
EXES = $(OBJS:%.o=)
install: $(EXES)
cp -p $+ $(DESTDIR/bin/
(注意:未经测试)。您使用的是make
的哪个版本?