使用Linux Mint 18.3(Ubuntu 16.04)
我在Anaconda环境中使用R studio 1.1.383和R 3.4.2,并且在尝试安装许多不同的库时,我得到的似乎是编译器错误。
例如,当尝试安装“lmtest”(“tidyquant”的依赖项,它在我的Windows机器上毫不费力地安装)时,我收到以下错误。由于tidyquant有很多依赖项,我想为您提供多条错误消息。
install.packages('lmtest')
trying URL 'https://cran.rstudio.com/src/contrib/lmtest_0.9-35.tar.gz'
Content type 'application/x-gzip' length 183575 bytes (179 KB)
==================================================
downloaded 179 KB
installing *source* package ‘lmtest’ ...
package ‘lmtest’ successfully unpacked and MD5 sums checked
libs
/home/mikejames/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gfortran -fpic -fopenmp -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/mikejames/anaconda3/include -L/home/mikejames/anaconda3/lib -c pan.f -o pan.o
/home/mikejames/anaconda3/bin/x86_64-conda_cos6-linux-gnu-cc -shared -L/home/mikejames/anaconda3/lib/R/lib -Wl,-O2,--sort-common,--as-needed,-z,relro,-z,now -L/home/mikejames/anaconda3/lib -o lmtest.so pan.o -lgfortran -lm -lgomp -lquadmath -lpthread -L/home/mikejames/anaconda3/lib/R/lib -lR
/home/mikejames/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgomp
/home/mikejames/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lquadmath
/home/mikejames/anaconda3/lib/R/share/make/shlib.mk:6: recipe for target 'lmtest.so' failed
make: *** [lmtest.so] Error 1
ERROR: compilation failed for package ‘lmtest’
* removing ‘/home/mikejames/anaconda3/lib/R/library/lmtest’
Warning in install.packages :
installation of package ‘lmtest’ had non-zero exit status
The downloaded source packages are in
‘/tmp/RtmpBzLASQ/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
我所有错误消息中的常见错误消息似乎是:找不到-lgomp和-lquadmath
/home/mikejames/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0 /../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgomp
/home/mikejames/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0 /../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lquadmath
非常感谢任何帮助!
答案 0 :(得分:0)
不幸的是,例如,如果您正在使用像QIIME2这样的大型管道,它们在Python和R中都具有非常大的特定依赖性,则可能需要使用R的anaconda / miniconda。这个问题已经很老了,但是仍然出现在搜索结果中,因此我认为,当我不得不在这些限制下工作时,提供一些对我有用的东西会很有用:
conda install
安装软件包,而不要使用install.packages
。 conda文档建议您使用conda search -f r-[pkgname]
查找候选安装。 r
频道可能特别有用。这可能是最简单的方法,但如果要安装的软件包很多,并且在依赖它们的地方有很多错误,则可能涉及一些乏味的“打扰人”。conda install -c conda-forge libgomp
来做到这一点。lib
文件夹ln -s ~/miniconda3/lib/libgomp.so ~/miniconda3/envs/qiime2-2020.6/x86_64-conda-linux-gnu/lib/
中手动创建软链接。这样就可以了,并且该软件包可以通过install.packages()
正常安装。我想您也可以尝试将-L [/your/home/directory]/miniconda3/lib
添加到LDFLAGS环境变量中,而不是第3步,这可能更优雅,但您每次启动环境时都必须找到一种方法。由于我目前有一个可行的解决方案,因此我不会对此做进一步的探讨。
希望这些答案有所帮助。