makefile for fftw3?

时间:2013-12-13 11:54:03

标签: c++ makefile fftw

所以我可以直接编译我的代码(fftw_ex.c):

    login$ gcc -o -g fftw_ex fftw_ex.c -I$TACC_FFTW3_INC -L$TACC_FFTW3_LIB -lfftw3

然而,我的教授更喜欢我们使用Makefile。我只是学习如何使用Makefile和make,我在创建Makefile时遇到了麻烦。到目前为止,这就是我所拥有的:

    #                     RULES

    EXEC := fftw_ex
    SRC := $(wildcard *.c)
    OBJ := $(patsubst %.c,%.o,%(SRC))

    #                     OPERATIONS

    CC := gcc
    CFLAGS := -O3 -I$TACC_FFTW3_INC
    LDFLAGS := -L$TACC_FFTW3_LIB
    LDLIBS := -lfftw3

    $(EXEC): $(OBJ)
            $(CC) $(LDFLAGS) $(LDLIBS) -o -g $@ $^

    %.o: %.c
            $(CC) $(CFLAGS) -c $<

    #                   PHONY TARGETS

    .PHONY: clean

    clean:
            @echo Cleaning...;rm -rf *.o fftw_ex

我知道SRC系列存在问题,因为我收到错误消息:

    make: *** No rule to make target `%(SRC)', needed by `fftw_ex'.  Stop.

任何有助于此工作的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

1)解决: 没有规则来制作目标`%(SRC)' 替换%(SRC)in OBJ:= $(patsubst%.c,%。o,%(SRC)) 与$(SRC)

2)在线: $(CC)$(LDFLAGS)$(LDLIBS)-o -g $ @ $ ^

你有错误:-o -g,应该是-g -o