问题
为了使用特定的IDE (rstudio),我需要用ICC/MKL (Composer XE 2013 SP 1.3.174)编译R3.1.1和共享库(--启用-rstudio),这样我就会遇到麻烦。
上下文
关于我的平台的一些信息:
OS: Ubuntu 14.04.1 LTS
Kernel: 3.13.0-30
Compiler: Intel ICC (Composer XE 2013 SP 1.3.174)
MKL: Intel MKL (Composer XE 2013 SP 1.3.174)我以前用ICC/MKL (Composer XE 2013 SP 1.3.174)编译了R3.1.1(没有共享库)的工作安装程序如下:
$source /opt/intel/composerxe/bin/compilervars.sh intel64
$export CC="icc"
$export CXX="icpc"
$export AR="xiar"
$export LD="xild"
$export CFLAGS="-O3 -ipo -openmp -xHost -multiple-processes"
$export CXXFLAGS="-O3 -ipo -openmp -xHost -multiple-processes"
$export MKL="-lmkl_gf_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"
$./configure --with-lapack --with-blas="$MKL" --build="x86_64-linux-gnu" --host="x86_64-linux-gnu" > log_cfg
$make > log_make_out 2> log_make_err
#make install当我运行上面的命令时,编译是成功的,log_make_err在进程结束时是空的。
正如我在开始时所说的,我现在需要用共享库(--启用-R)编译R。因此,我尝试使用与以前完全相同的命令(同一台计算机),并将配置行更改为:
$./configure --with-lapack --with-blas="$MKL" --build="x86_64-linux-gnu" --host="x86_64-linux-gnu" --enable-R-shlib这提供了以下输出:
R is now configured for x86_64-pc-linux-gnu
Source directory: .
Installation directory: /usr/local
C compiler: icc -std=gnu99 -O3 -ipo -openmp -xHost -multiple-processes
Fortran 77 compiler: gfortran -g -O2
C++ compiler: icpc -O3 -ipo -openmp -xHost -multiple-processes
C++ 11 compiler: icpc -std=c++11 -O3 -ipo -openmp -xHost -multiple-processes
Fortran 90/95 compiler: x86_64-linux-gnu-gfortran -g -O2
Obj-C compiler: x86_64-linux-gnu-gcc
Interfaces supported: X11, tcltk
External libraries: readline, BLAS(generic), LAPACK(in blas), lzma
Additional capabilities: PNG, JPEG, TIFF, NLS, cairo
Options enabled: shared R library, R profiling
Recommended packages: yes在本例中,编译不成功,log_make_err包含以下
ld: /tmp/ipo_iccUpPSPh.o: undefined reference to symbol '__kmpc_end@@VERSION'
/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64/libiomp5.so: error adding symbols: DSO missing from command line
make[3]: *** [R.bin] Error 1
make[2]: *** [R] Error 2
make[1]: *** [R] Error 1
make: *** [R] Error 1当我对每个情况下配置脚本的输出运行diff时,都不会出现什么奇怪的情况:
753c753
< Options enabled: R profiling
---
> Options enabled: shared R library, R profiling我尝试包含make命令的全部输出,但它超过了允许的最大字符数,因此使用pastebin并不是一个好做法。
如果你觉得有信息缺失,请告诉我,这些信息可以帮助你把我引向正确的方向。
谢谢!
发布于 2014-10-01 12:51:36
在脚本中添加以下内容为我解决了这个问题:
export MAIN_LDFLAGS='-openmp'其他的一切都没变。
希望这对其他人有帮助。
发布于 2014-09-23 08:35:59
我一直在针对MKL编译R,这是一个挑战。我还没有在ubuntu上做过这件事,但是从您的配置中可以看出以下四点:
https://stackoverflow.com/questions/25669214
复制相似问题