我有一個Makefile用於在mac os x上構建可執行文件,使用mpicc編譯器鏈接mkl_lapack.h庫。 現在這個Makefile是完美的工作,唯一的問題是,我不知道要添加什麼,如果我想編譯Eigenvalues.c鏈接其他.c文件,如果我想鏈接myfile.c我必須在哪裏寫它在Makefile中?如何在Makefile中添加額外的源文件
MKL_INCLUDE=/opt/intel/mkl/include
MKLROOT=/opt/intel/mkl/lib
CC = mpicc
LD = mpicc
IFLAGS = -I$(MKL_INCLUDE)
CFLAGS = -Wall -O2 $(IFLAGS) -std=c99
LFLAGS = $(MKLROOT)/libmkl_intel_lp64.a $(MKLROOT)/libmkl_sequential.a $(MKLROOT)/libmkl_core.a -lpthread -lm
PROGRAMS = Eigenvalues
all: $(PROGRAMS)
Eigenvalues:
$(CC) $(CFLAGS) -o [email protected] $^ $(LFLAGS)
%.o: %.c
@echo C compiling [email protected]
$(CC) -c $(CFLAGS) -o [email protected] $<
clean:
rm -rf *.o $(PROGRAMS)
Eigenvalues: Eigenvalues.c
LFLAGS傳統上是傳遞給lex的標誌的名稱,而LDFLAGS是傳遞給鏈接器的標誌的名稱。請參閱:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html – 2012-01-12 17:11:15