R gputools: gcc: ошибка: не распознанный параметр командной строки ' - Wp’


У меня была ошибка при установке gputools в R, и я не могу найти никакого решения с помощью google. Я использую команду install.packages("gputools")

  /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)
2 4

2 ответа:

Хорошо, я получил это, работая с парой хаков. Это для centos 7.

Первый вопрос был решен путем просмотра списка рассылки. https://github.com/nullsatz/gputools/issues/12

Отредактируйте файл Makefile и измените строку 'CFLAGS: put' \ 'after ' Wp' & before ','

CFLAGS = - O2-g-pipe-Wall-Werror=format-security-Wp\, - D_FORTIFY_SOURCE=2-fexceptions-fstack-protector-strong --param=ssp-buffer-size=4-grecord-GCC-switches-m64 - mtune=generic

Вторая проблема состояла в том, что общий lib R не был найден. Я попытался установить LD_LIBRARY_PATH в файле конфигурации драйвера и в командной строке, но это не сработало.

В итоге я получил следующий хак:

Компакт-диски /usr/местные/соты/lib64 && ЛН-ы в /usr/lib64/Р/Либ/либр.так что либр.так

Я использовал следующую команду для сборки (обратите внимание на tar.файл gz теперь содержит модифицированный файл Makefile)

R CMD УСТАНОВИТЬ -- configure-args= " --with-nvcc=/usr / local/cuda/bin / nvcc --with-r-lib=/usr/ lib64/"./gputools_1.0.смола.gz

Я знаю, что это некрасиво, но, кажется, это работает.

Похоже, что в вашем файле makefile есть опечатка

-Wp,-D_FORTIFY_SOURCE=2

В частности, запятая ( ' ,') должна быть только пробелом ('').

Пожалуйста, попробуйте это и сообщите нам, что произошло