我有同样的问题:
GCC轮候册, - 出口动态-fopenmp -L在/ usr/local/lib目录-o R.bin Rmain.o CommandLineArgs.o Rdynload.o Renviron。 RNG.o agrep.o apply.o arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o colors.o complex.o connections.o context.o cum.o dcf.o datetime .o debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o gram-ex .o graphics.o grep.o identical.o inlined.o inspect.o internet.o iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o match.o memory.o names.o objects.o options.o paste.o platform.o plot.o plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o qsort.o radixsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o subassign.o subscript.o subset.o summary.o sysutils.o times。 o unique.o util.o version.o g_alab_her.o g_cntrlify.o g_fontdb.o g_her_glyph.o xxxpr.o ls ../unix/*.o ../appl/*.o ../nmath/*.o
../extra/tre/libtre.a -L ../../ lib -lRblas -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -lgfortran -lm -lquadmath -lreadline -lpcre -llzma -lbz2 -lz -lrt -ldl -lm array.o:在函数do_colsum': /home/myaccount/Downloads/R-patched/src/main/array.c:1437: undefined reference to
GOMP_parallel' collect2:error: ld返回1退出状态 Makefile:144:目标'R.bin'的配方失败
这是来自R(autotools问题)的配置问题。我的电脑有gcc 4.8(附带操作系统)和最新版本的gcc 5.2(我从源代码构建)。海湾合作委员会5.2位于/ usr /本地
我看到R是混合这两个了,而不是拿起5.2库的位置。
我改变了Makefile(这只是一次性修复,因为make文件是由autotool生成的)。
首先进入src/main目录。然后编辑Makefile:
143 $(R_binary):$(R_bin_OBJECTS)$(R_bin_DEPENDENCIES) 144 $(MAIN_LINK)-o $ @ $(R_bin_OBJECTS)$(R_bin_LDADD)
Edite行144:
144 $(MAIN_LINK)-o $ @ $(R_bin_OBJECTS)-L在/ usr /本地/ lib64的-lgomp $(R_bin_LDADD)
这个固定我的问题。我很难为R项目提交一个bug。如果R开发人员看到了这一点,他们是否可以在自动配置级别解决这个问题?自动探测只需要一点点智能。
我远不是这方面的专家,但OpenMP是运行R多线程的一种方法。不过,我认为你必须专门为它编写代码,所以如果你不打算使用它,它可能并不重要。 – alistaire
它看起来像R的基础包中的colSum函数似乎正在使用openMP。我将不得不深入研究一下,看看在OpenMP和没有OpenMP的情况下运行时间是否会有所不同。 –
对于问题1,多线程对于现代计算基本上是必不可少的。你会得到显着的提升。 –