2016-04-25 107 views
4

当我在R中安装gputools时出现错误,而且我找不到任何解决方案。 我用命令install.packages("gputools")R gputools:gcc:error:无法识别的命令行选项'-Wp'

/usr/local/cuda/bin/nvcc -c -Xcompiler "-fpic -I/usr/local/include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" -I. -I"/usr/local/cuda/include" -I"/usr/lib64/R/include" rinterface.cu -o rinterface.o 
gcc: error: unrecognized command line option ‘-Wp’ 
make: *** [rinterface.o] Error 1 
ERROR: compilation failed for package ‘gputools’ 

有人可以帮助我在这里?我的GPU卡是由

01:00.0 VGA compatible controller: NVIDIA Corporation GM107GL [Quadro K620] (rev a2) 
+1

关于去除要传递到编译器的主机编译器选项违规逗号/协议是什么? – talonmies

+0

@talonmies。我不懂你说什么。我在R控制台中使用命令'install.packages(“gputools”)'。 –

+0

因此,R程序包的设置包含传递给主机gcc的编译器选项,它不理解。您可以自行移除它们,或者向制作包装的人员报告。我在这里看不到CUDA编程问题,因此我将删除标记 – talonmies

回答

4

好吧,我得到了这个工作与几个黑客。这是针对centos 7.

第一个问题是通过查看邮件列表解决的。 https://github.com/nullsatz/gputools/issues/12

编辑Makefile文件,并修改行: '后 '' 前& 'Wp的' CFLAGS把' \”

CFLAGS = -02 -g -pipe -Wall -Werror =格式的安全性-Wp \, - D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong -param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic

第二个问题是R共享lib没有被找到。我尝试在驱动程序配置文件中和命令行中设置LD_LIBRARY_PATH,但这不起作用。

我结束了下面的技巧:

CD的/ usr /本地/ CUDA/lib64的& & LN -s /usr/lib64/R/lib/libR.so libR.so

我使用以下命令来建立(注意tar.gz文件现在包含修改的Makefile)

R CMD INSTALL --configure-args =“ - with-nvcc =/usr/local/cuda/bin/nvcc --with -r-lib =/usr/lib64 /“./gputools_1.0.tar.gz

我知道这很丑,但它似乎工作。

+0

将'\'放在'Wp'之后&'之前,'之后,您对文件夹“gputools”做了什么?你又压缩了吗?如果我从tar.gz文件安装软件包,则会显示相同的错误。 –

+0

谢谢。问题解决了。 –

+0

我找不到Makefile的位置。即使我运行“grep -r”Wp“。”从解压缩的文件中。 Makefile在哪里,或者我怎么生成它? –

-1

看来你的Makefile有一个错字

-Wp,-D_FORTIFY_SOURCE=2 

具体来说,逗号( ' ')应该只有一个空格('')。

请尝试,并报告让我们知道发生了什么事

+1

它的工作原理。问题是如何安装软件包。从解压文件夹'gputools'或tar.gz文件再次? –

+0

这是什么makefile?我找不到它!!! – Mohammad

相关问题