我已经关注本指南直到步骤 5。运行时,$make arch=intel64
它给出以下输出:
make -f Make.top startup_dir arch=intel64
make[1]: Entering directory `/hpl-2.0'
Make.intel64:106: *** missing separator. Stop.
make[1]: Leaving directory `/hpl-2.0'
make: *** [startup] Error 2
我不确定“缺少分隔符”是什么意思。
编辑:我在 makefile 的第 103-106 行中有以下内容:
LAdir = /opt/intel/mk/lib/intel64
LAinc = /opt/intel/mkl/include
LAlib = -Wl,--start-
group $(LAdir)/libmkl_intel_lp64.a $(LAdir)/libmkl_intel_thread.a $(LAdir)/libmkl_core.a -Wl, --end-group -lpthread -lm
如果我没记错的话,这正是指南中所建议的。
答案1
我发现该指南的格式有点误导,并怀疑 makefile 中的这些行:
LAlib = -Wl,--start-
group $(LAdir)/libmkl_intel_lp64.a $(LAdir)/libmkl_intel_thread.a $(LAdir)/libmkl_core.a -Wl, --end-group -lpthread -lm
实际上应该是如下一行:
LAlib = -Wl,--start-group $(LAdir)/libmkl_intel_lp64.a $(LAdir)/libmkl_intel_thread.a $(LAdir)/libmkl_core.a -Wl, --end-group -lpthread -lm
换句话说,如果在第 105 行的 --start- 之后有一个换行符,则删除它并确保当前以 开头的第 106 行group
移动到第 105 行的末尾。