g++ 的 openmp 生成文件 ---- 它不工作
makefile for openmp by g++ ---- It is not working
我想为将要使用 openmp 的代码使用一个 makefile。我的源文件编译和链接没有任何错误。但是当我 运行 它时,它只使用一个处理器,即使我通过例如 export OMP_NUM_THREADS=2 调整了它们的数量。
makefile如下所示。如果有人能帮助我,我将不胜感激。
最佳
CPP_FILES := $(wildcard src/*.cpp)
OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
CC = g++
DEBUG = -g
INTEL=icc
ifeq ($(notdir $(CC)),$(INTEL))
CCFLAGS=-openmp -lm -lstdc++
else
CCFLAGS=-fopenmp -lm -lstdc++
endif
LD_FLAGS :=-fopenmp -Wall $(DEBUG)
#CC_FLAGS := -Wall -c $(DEBUG)
MAIN: $(OBJ_FILES)
$(CC) $(LD_FLAGS) -o $@ $^
obj/%.o: src/%.cpp
$(CC) $(CC_FLAGS) -c -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJ_FILES) *.o
您定义的变量 CCFLAGS
与您在实际编译规则中使用的变量 CC_FLAGS
不匹配。当您清理并 运行 make
编译行是否实际显示您设置的标志被传递?我希望他们不应该,除非你在这里的代码不是你运行宁的直接副本。
为了便于调试,您能否复制并粘贴显示编译和链接过程的终端脚本?
我想为将要使用 openmp 的代码使用一个 makefile。我的源文件编译和链接没有任何错误。但是当我 运行 它时,它只使用一个处理器,即使我通过例如 export OMP_NUM_THREADS=2 调整了它们的数量。
makefile如下所示。如果有人能帮助我,我将不胜感激。
最佳
CPP_FILES := $(wildcard src/*.cpp)
OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
CC = g++
DEBUG = -g
INTEL=icc
ifeq ($(notdir $(CC)),$(INTEL))
CCFLAGS=-openmp -lm -lstdc++
else
CCFLAGS=-fopenmp -lm -lstdc++
endif
LD_FLAGS :=-fopenmp -Wall $(DEBUG)
#CC_FLAGS := -Wall -c $(DEBUG)
MAIN: $(OBJ_FILES)
$(CC) $(LD_FLAGS) -o $@ $^
obj/%.o: src/%.cpp
$(CC) $(CC_FLAGS) -c -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJ_FILES) *.o
您定义的变量 CCFLAGS
与您在实际编译规则中使用的变量 CC_FLAGS
不匹配。当您清理并 运行 make
编译行是否实际显示您设置的标志被传递?我希望他们不应该,除非你在这里的代码不是你运行宁的直接副本。
为了便于调试,您能否复制并粘贴显示编译和链接过程的终端脚本?