出口.o&二进制文件到bin文件夹

时间:2014-09-29 12:00:21

标签: gcc makefile

我的问题是一个非常简单的问题,我只想将非源代码的所有内容导出到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

2 个答案:

答案 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的哪个版本?