【问题标题】:makefile for openmp by g++ ---- It is not workingg++的openmp的makefile ----它不工作
【发布时间】:2015-02-19 07:38:12
【问题描述】:

我想为将使用 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

【问题讨论】:

    标签: makefile g++ openmp


    【解决方案1】:

    您定义的变量CCFLAGS 与您在实际编译规则中使用的变量CC_FLAGS 不匹配。当您清理并运行make 时,编译行是否真的显示您设置的标志被传递?我希望他们不应该这样做,除非您在此处拥有的代码不是您正在运行的代码的直接副本。

    为了便于调试,您能否复制并粘贴显示编译和链接发生的终端脚本?

    【讨论】:

    • 你是对的..这是一个巨大的错误!现在,它运行良好....非常感谢您的宝贵时间和您的大力帮助...
    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多