2010-05-18 5 views

ответ

2

Чтобы сделать ваш Makefile более кратким, вы можете записать его следующим образом.

CC=gcc 
CFLAGS=-pthread -g -o 

all: p1 p2 

%: %.c 
    $(CC) $(CFLAGS) [email protected] $^ 

Затем вы можете добавить столько P, как вы хотите на all: линии. Пока вы предоставляете pN.c, make будет компилировать их в соответствующий pN.

+0

Дидье, он работает, спасибо. – David

1

Да, вы можете комбинировать команды «по предварительным условиям». Например:

CC=gcc 
CFLAGS=-O3 
INCLS=-I$(BASEDIR)/include 
LIBS=$(BASEDIR)/lib/thread.a 
OBJS = dotprod_mutex.o dotprod_serial.o 
EXEC = dotprod 

$(EXEC): $(OBJS) 
     $(CC) -o $(EXEC) $(OBJS) $(LIBS) 
$(OBJS): dotprod.h 
     $(CC) $(CFLAGS) $(INCLS) -c $*.c 

или сконвертировано - вам нужно пройти через детали и убедитесь, что эти библиотеки и так далее на самом деле имеет смысл.

Обратите внимание, что фраза $(OBJS): dotprod.h означает, что $(OBJS): зависит от наличия dotprod.h.

Вы хотите прочитать инструкцию, чтобы получить все окровавленные детали, в частности:

Что касается инструментов для автоматизации этого материала, вы хотите AutoMake и autoconf: http://sourceware.org/autobook/

+0

snim2, спасибо, мой вопрос не очень ясен, и я изменил его. – David

+0

Спасибо, Дэвид. В этом случае любой из ответов здесь будет работать, и ответьте на вопрос, насколько я вижу :) – snim2