2016-04-25 2 views
4

J'ai eu une erreur lorsque j'ai installé gputools dans R, et je ne trouve aucune solution par google. J'utilise la commande install.packages("gputools")R gputools: gcc: erreur: option de ligne de commande non reconnue '-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’ 

Quelqu'un peut-il me aider? Mes cartes gpu est donnée par

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

Qu'en est-il enlever la virgule incriminée/accord des options du compilateur d'accueil vous passer au compilateur? – talonmies

+0

@talonmies. Je ne comprends pas ce que tu veux dire. J'utilise la commande 'install.packages (" gputools ")' dans la console R. –

+0

Ainsi, l'installation de ce paquet R contient les options du compilateur qui sont passées à votre hôte gcc, ce qu'il ne comprend pas. Retirez-les vous-même ou signalez-le à la personne qui a fabriqué le paquet. Je ne vois aucune question de programmation CUDA ici, donc je vais supprimer l'étiquette – talonmies

Répondre

4

Ok, j'ai eu ce travail avec quelques hacks. Ceci est pour centos 7.

Le premier problème a été résolu en regardant la liste de diffusion. https://github.com/nullsatz/gputools/issues/12

Modifier le Makefile, et modifier la ligne 'CFLAGS: mettre '\' après 'Wp' & before', »

CFLAGS = -O2 -g -pipe -Wall format = sécurité -Werror -Wp \, - D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-fort --param = taille-ssp-buffer-4 -grecord-gcc-switches -m64 -mtune = générique

Le deuxième problème était que le R partagé lib n'a pas été trouvé. J'ai essayé de définir le LD_LIBRARY_PATH dans le fichier de configuration du pilote, et sur la ligne de commande, mais cela n'a pas fonctionné.

J'ai fini avec le hack suivant:

cd/usr/local/cuda/lib64 & & ln -s /usr/lib64/R/lib/libR.so libR.so

Je

utilisé la commande suivante pour construire (notez le fichier tar.gz contient maintenant le Makefile modifié)

R CMD INSTALLER --Configure-args = "- avec-nvcc =/usr/local/cuda/bin/nvcc --with-r-lib =/usr/lib64/"./gputools_1.0.tar.gzJe sais que c'est moche, mais cela semble fonctionner.

+0

Après avoir mis '\' après 'Wp' et avant ',', qu'avez-vous fait avec le dossier 'gputools'? Avez-vous refait le zip? Si j'installe des paquets à partir du fichier tar.gz, il montre la même erreur. –

+0

Merci. Problème résolu. –

+0

Je ne trouve pas l'emplacement du Makefile. Même quand je cours 'grep -r "Wp".' de l'intérieur du fichier décompressé. Où est le Makefile, ou comment puis-je le générer? –

-1

Il semble que votre makefile a une faute de frappe

-Wp,-D_FORTIFY_SOURCE=2 

Plus précisément, la virgule (' ') devrait être un espace ('') seulement.

S'il vous plaît essayer et de faire rapport pour nous faire savoir ce qui est arrivé

+1

Cela fonctionne. Le problème est comment installer le paquet. Dans le dossier unzip 'gputools' ou fichier tar.gz à nouveau? –

+0

où est ce fichier makefile? Je ne le trouve pas!!! – Mohammad