Фатальная ошибка: auc_.cpp: 2: 10: фатальная ошибка: omp.h: нет такого файла или каталога - PullRequest
0 голосов
/ 10 апреля 2019

Я использую RServer Studio в Linux на AWS.

Я попытался установить ModelMetrics, зависимость для caret, и получил эту ошибку:

auc_.cpp:2:10: fatal error: omp.h: No such file or directory
 #include <omp.h>
          ^~~~~~~
compilation terminated.
make: *** [auc_.o] Error 1
ERROR: compilation failed for package ‘ModelMetrics’

Это полное сообщение вывода

Installing package into ‘/home/User/R/x86_64-pc-linux-gnu-library/3.5’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/ModelMetrics_1.2.2.tar.gz'
Content type 'application/x-gzip' length 16974 bytes (16 KB)
==================================================
downloaded 16 KB

* installing *source* package ‘ModelMetrics’ ...
** package ‘ModelMetrics’ successfully unpacked and MD5 sums checked
** libs
g++  -I"/opt/R/3.5.3/lib64/R/include" -DNDEBUG  -I"/home/User/R/x86_64-pc-linux-gnu-library/3.5/Rcpp/include" -I/usr/local/include   -fpic  -g -O2  -c RcppExports.cpp -o RcppExports.o
g++  -I"/opt/R/3.5.3/lib64/R/include" -DNDEBUG  -I"/home/User/R/x86_64-pc-linux-gnu-library/3.5/Rcpp/include" -I/usr/local/include   -fpic  -g -O2  -c auc_.cpp -o auc_.o
auc_.cpp:2:10: fatal error: omp.h: No such file or directory
 #include <omp.h>
          ^~~~~~~
compilation terminated.
make: *** [auc_.o] Error 1
ERROR: compilation failed for package ‘ModelMetrics’
* removing ‘/home/User/R/x86_64-pc-linux-gnu-library/3.5/ModelMetrics’
Warning in install.packages :
  installation of package ‘ModelMetrics’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpr06k8i/downloaded_packages’

Я посмотрел вокруг, и похоже, что с компилятором произошла ошибка. Я попробовал решения, перечисленные здесь , в частности, я выполнил эти команды

yum groupinstall 'Development Tools'
mkdir ~/.R
echo "CC=gcc64" >> ~/.R/Makevars
sudo sed -i 's/CC = gcc -m64/CC = gcc64 -m64/g' /usr/lib64/R/etc/Makeconf

Даже после перезапуска RStudio Server я получаю тот же вывод и сообщение об ошибке.

Похоже, эта ошибка очень похожа на проблему здесь . У меня все еще нет решения после выполнения этих инструкций, но я нашел местоположение моего файла omp.h.

/usr/lib/gcc/x86_64-amazon-linux/4.4.6/include/omp.h
/usr/lib/gcc/x86_64-amazon-linux/4.8.5/include/omp.h
/usr/lib/gcc/x86_64-amazon-linux/6.4.1/include/omp.h

Я установил Developer Tools и обновил файл Makeconf с помощью этих команд.

sudo sed -i 's/CC = gcc -m64/CC = gcc64 -m64/g' /usr/lib64/R/etc/Makeconf
sudo yum groupinstall 'Development Tools'

Затем я добавил эти строки в файл конфигурации Makevars.

mkdir ~/.R
vi ~/.R/Makevars

CC=gcc
VER=64
CC=gcc$(VER)
CXX=g++$(VER)
CXX11=g++$(VER)
CXX14=g++$(VER)

Я перезапустил сервер RStudio и попытался установить ModelMetrics и получил эту ошибку, так же, как и раньше.

Installing package into ‘/home/User/R/x86_64-pc-linux-gnu-library/3.5’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/ModelMetrics_1.2.2.tar.gz'
Content type 'application/x-gzip' length 16974 bytes (16 KB)
==================================================
downloaded 16 KB

* installing *source* package ‘ModelMetrics’ ...
** package ‘ModelMetrics’ successfully unpacked and MD5 sums checked
** libs
g++  -I"/opt/R/3.5.3/lib64/R/include" -DNDEBUG  -I"/home/User/R/x86_64-pc-linux-gnu-library/3.5/Rcpp/include" -I/usr/local/include   -fpic  -g -O2  -c RcppExports.cpp -o RcppExports.o
g++  -I"/opt/R/3.5.3/lib64/R/include" -DNDEBUG  -I"/home/User/R/x86_64-pc-linux-gnu-library/3.5/Rcpp/include" -I/usr/local/include   -fpic  -g -O2  -c auc_.cpp -o auc_.o
auc_.cpp:2:10: fatal error: omp.h: No such file or directory
 #include <omp.h>
          ^~~~~~~
compilation terminated.
make: *** [auc_.o] Error 1
ERROR: compilation failed for package ‘ModelMetrics’
* removing ‘/home/User/R/x86_64-pc-linux-gnu-library/3.5/ModelMetrics’
Warning in install.packages :
  installation of package ‘ModelMetrics’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpTSUlz4/downloaded_packages’

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Оказывается, что-то не так с версией gcc на коробке linux.

В соответствии с инструкциями здесь я смог решить проблему с этими двумя строками кода.

sudo yum remove gcc72-c++.x86_64 libgcc72.x86_64
sudo yum groupinstall 'Development Tools'
0 голосов
/ 11 апреля 2019

Вы настроили R для использования gcc64 при компиляции файлов C, но файлы C ++ будут по-прежнему компилироваться с g++ вместо g++64.Следующая конфигурация в ~/.R/Makevars изменит это последовательно:

VER=64
CC=gcc$(VER)
CXX=g++$(VER)
CXX11=g++$(VER)
CXX14=g++$(VER)

Поскольку вышеприведенное не работает для вас, вы можете столкнуться с теми же проблемами, что и этот пользователь: https://stackoverflow.com/a/49876044/8416610 В этомВ случае, если вы можете отредактировать файл R Makeconf с помощью

sudo sed -i 's/g++/g++64/' $(R RHOME)/etc/Makeconf

(при условии, что вы уже изменили gcc на gcc64)

...