makefile中变量的一点问题(请大家帮帮忙啊,有急用)

编译安装或者制作Deb包
回复
yake827
帖子: 20
注册时间: 2012-09-07 14:47
系统: Ubuntu
送出感谢: 0
接收感谢: 0

makefile中变量的一点问题(请大家帮帮忙啊,有急用)

#1

帖子 yake827 » 2012-09-19 18:20

# Makefile to compare sorting routines

BASE = /home/blufox/base
CC = gcc
CFLAGS = -O –Wall
EFILE = $(BASE)/bin/compare_sorts
INCLS = -I$(LOC)/include
LIBS = $(LOC)/lib/g_lib.a \
$(LOC)/lib/h_lib.a
LOC = /usr/local

OBJS = main.o another_qsort.o chk_order.o \
compare.o quicksort.o

$(EFILE): $(OBJS)
@echo “linking …”
@$(CC) $(CFLAGS) –o $@ $(OBJS) $(LIBS)

$(OBJS): compare_sorts.h
$(CC) $(CFLAGS) $(INCLS) –c $*.c

# Clean intermediate files
clean:
rm *~ $(OBJS)
就是这句@$(CC) $(CFLAGS) –o $@ $(OBJS) $(LIBS),是什么意思呢?我一直觉得是如果变量$(OBJS)比$(EFILE)新的话,就把/usr/local/lib/g_lib.a 和/usr/local/lib/h_lib.a文件夹下的main.o another_qsort.o chk_order.o compare.o quicksort.o重新编译并在编译时生成所有警告信息,并把生成的目标文件放在/home/blufox/base/bin/compare_sorts中,不知道是不是这样理解的?总感觉有偏差,而我对于此次不想有一点失误了,希望大家能帮我看看,谢谢了!还有就是每个命令前面的@是什么意思?
回复

回到 “编译或打包”