如何在Makefiles/GCC中启用OpenMP支持

如何在Makefiles/GCC中启用OpenMP支持,gcc,makefile,openmp,Gcc,Makefile,Openmp,我试图通过在两个不同的项目中使用OpenMP来并行化for循环,但OpenMP在Makefile中存在一个问题:忽略#pragma omp parallelize for。所以我需要更改Makefile,使其能够支持OpenMP,但我不知道如何更改 all: lbm lbm: lbm.c main.c gcc -o lbm lbm.c main.c -lm clean: rm -f lbm *.o all: mcf mcf: implicit.c mcfutil.c

我试图通过在两个不同的项目中使用OpenMP来并行化for循环,但OpenMP在Makefile中存在一个问题:
忽略#pragma omp parallelize for
。所以我需要更改Makefile,使其能够支持OpenMP,但我不知道如何更改

all: lbm 

lbm: lbm.c main.c 
    gcc -o lbm lbm.c main.c -lm
clean:
    rm -f lbm *.o

all: mcf 

mcf: implicit.c  mcfutil.c  pbeampp.c  pflowup.c   pstart.c   treeup.c mcf.c       output.c   pbla.c     psimplex.c  readmin.c
    gcc -o mcf *.c 
clean:
    rm -f mcf *.o

-fopenmp
选项添加到
gcc
的每个调用中,对于
gcc
,OpenMP通过
-fopenmp
标志启用。将此添加到每次调用
gcc
。不同的编译器可能使用不同的标志,在这些情况下,请参阅编译器手册。为确保更改有效,在编辑
Makefile

后运行
makeclean&&makeall
,但我没有执行“make:Nothing To do for`all.”操作。all:lbm lbm:lbm.c main.c gcc-fopenmp-o lbm lbm.c main.c-lm clean:rm-f lbm*。其他Makefile不会检测到自身的更改。你需要运行
makeclean&&makeall
。谢谢你的帮助,但我对这件事很熟悉。消息将更改为:gcc fopenmp-o lbm lbm.c main.c-lm gcc:error:fopenmp:没有这样的文件或目录生成:**[lbm]error 1看起来你忘记了
-fopenmp
的减号了吗?是的,非常感谢你,你真是太棒了:)我做到了,但没有写“make:对所有人都不做任何事”。all:lbm lbm:lbm.c main.c gcc-fopenmp-o lbm lbm.c main.c-lm clean:rm-f lbm*.o