1

所有,我正在用 OpenMP 编译一个 C 程序。这是我第一次使用makefile。执行“make”时,gcc 报错make: * No rule to make target omp.h', needed bysmooth.o'。停止。但是 omp.h 在 /usr/lib/gcc/i686-linux-gnu/4.6/include/omp.h 中,我想知道如何修复它。有人可以帮我吗?谢谢你。

CC=gcc
CFLAGS = -fopenmp

all: smooth

smooth: smooth.o ompsooth.o
    $(CC) $(CFLAGS) -o smooth smooth.o ompsmooth.o

ompsmooth.o: ompsmooth.c assert.h stdio.h stdlib.h omp.h ompsmooth.h
    gcc $(CFLAGS) ompsmooth.c

smooth.o: smooth.c ompsmooth.h omp.h stdio.h stdlib.h string.h sys/types.h sys/stat.h     fcntl.h
    gcc $(CFLAGS) smooth.c

clean:

    rm *.o
    rm smooth
4

1 回答 1

5

除非您期望您的标准头文件发生更改,否则最简单的解决方案就是将它们从先决条件列表中删除。

如果您不想执行上述操作,那么您要么需要指定完整路径omp.h,要么使用该VPATH机制。

于 2013-02-17T18:46:47.090 回答