总之,我在用OpenMP编译一个C程序。这是我第一次使用makefile。当执行“make”时,gcc报告错误make:*没有规则使targetomp.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

最佳答案

除非您希望更改标准头文件,否则最简单的解决方案是从必备列表中删除它们。
如果不想执行上述操作,则需要指定omp.h的完整路径,或者使用VPATH机制。

关于c - makefile错误:make:***没有规则可以使目标`omp.h';使用OpenMP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14924683/

10-14 15:43