Data.table: Ошибка компиляции 1.12.0 в Red Hat Linux / Trisquel

Созданный на 17 янв. 2019  ·  32Комментарии  ·  Источник: Rdatatable/data.table

Привет, я безуспешно пытался установить пакет v1.12.0 (13 января 2019 г.) data.table в системе Trisquel GNU/Linux. У меня есть информация о sessionInfo внизу этой проблемы.

Пожалуйста, смотрите журнал установки ниже:

> install.packages("data.table")
Installing package into ‘/x86_64-pc-linux-gnu-library/library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/data.table_1.12.0.tar.gz'
Content type 'application/x-gzip' length 3311096 bytes (3.2 MB)
==================================================
downloaded 3.2 MB

* installing *source* package ‘data.table’ ...
** package ‘data.table’ successfully unpacked and MD5 sums checked
** libs
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c assign.c -o assign.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c between.c -o between.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c bmerge.c -o bmerge.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c chmatch.c -o chmatch.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c dogroups.c -o dogroups.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fastmean.c -o fastmean.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fcast.c -o fcast.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fmelt.c -o fmelt.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c forder.c -o forder.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c frank.c -o frank.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fread.c -o fread.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c freadR.c -o freadR.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c froll.c -o froll.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c frollR.c -o frollR.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c frolladaptive.c -o frolladaptive.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fsort.c -o fsort.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fwrite.c -o fwrite.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c fwriteR.c -o fwriteR.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c gsumm.c -o gsumm.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c ijoin.c -o ijoin.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c init.c -o init.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c inrange.c -o inrange.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c nqrecreateindices.c -o nqrecreateindices.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c openmp-utils.c -o openmp-utils.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c quickselect.c -o quickselect.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c rbindlist.c -o rbindlist.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c reorder.c -o reorder.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c shift.c -o shift.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -std=gnu99 -c subset.c -o subset.o
subset.c: In function ‘subsetVectorRaw’:
subset.c:36:105: error: stray ‘#’ in program
     PARLOOP(NA_INTEGER)
                                                                                                         ^
subset.c:36:106: error: unknown type name ‘pragma’
     PARLOOP(NA_INTEGER)
                                                                                                          ^
subset.c:36:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_INTEGER)
                                                                                                                     ^
subset.c:36:16: error: ‘i’ undeclared (first use in this function)
     PARLOOP(NA_INTEGER)
                ^
subset.c:36:16: note: each undeclared identifier is reported only once for each function it appears in
subset.c:36:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_INTEGER)
                        ^
subset.c:36:24: error: expected statement before ‘)’ token
subset.c:42:124: error: stray ‘#’ in program
       PARLOOP(INT64_MIN)
                                                                                                                            ^
subset.c:42:125: error: unknown type name ‘pragma’
       PARLOOP(INT64_MIN)
                                                                                                                             ^
subset.c:42:136: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(INT64_MIN)
                                                                                                                                        ^
subset.c:42:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(INT64_MIN)
                        ^
subset.c:42:24: error: expected statement before ‘)’ token
subset.c:46:106: error: stray ‘#’ in program
       PARLOOP(NA_REAL)
                                                                                                          ^
subset.c:46:107: error: unknown type name ‘pragma’
       PARLOOP(NA_REAL)
                                                                                                           ^
subset.c:46:118: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(NA_REAL)
                                                                                                                      ^
subset.c:46:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(NA_REAL)
                        ^
subset.c:46:24: error: expected statement before ‘)’ token
subset.c:76:105: error: stray ‘#’ in program
     PARLOOP(NA_CPLX)
                                                                                                         ^
subset.c:76:106: error: unknown type name ‘pragma’
     PARLOOP(NA_CPLX)
                                                                                                          ^
subset.c:76:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_CPLX)
                                                                                                                     ^
subset.c:76:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_CPLX)
                        ^
subset.c:76:24: error: expected statement before ‘)’ token
subset.c:81:99: error: stray ‘#’ in program
     PARLOOP(0)
                                                                                                   ^
subset.c:81:100: error: unknown type name ‘pragma’
     PARLOOP(0)
                                                                                                    ^
subset.c:81:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(0)
                                                                                                               ^
subset.c:81:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(0)
                        ^
subset.c:81:24: error: expected statement before ‘)’ token
make: *** [subset.o] Error 1
ERROR: compilation failed for package ‘data.table’

Output of sessionInfo()

R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Trisquel GNU/Linux Belenos (7.0)

Matrix products: default
BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] graphics  grDevices datasets  stats     utils     methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2   
platform-specific

Самый полезный комментарий

@jangorecki Извините, я идиот. Сервер, на котором я был, по-видимому, все еще работает под управлением Redhat 6, и у меня нет проблем с тем, что он не поддерживается. Здорово, что на 7 до сих пор работает из коробки.

Все 32 Комментарий

Привет,

У меня также возникают проблемы с установкой data.table в Linux со следующей ошибкой:

gcc -std=gnu99 -I"/share/ClusterShare/software/contrib/seyyaz/R-v3.5.1/lib64/R/include" -DNDEBUG   -I/share/ClusterShare/software/contrib/seyyaz/zlib-1.2.11/include -I/share/ClusterShare/software/contrib/seyyaz/bzip2-1.0.6/include -I/share/ClusterShare/software/contrib/seyyaz/xz-5.2.4/include -I/share/ClusterShare/software/contrib/seyyaz/pcre-8.42/include -I//share/ClusterShare/software/contrib/seyyaz/curl-7.63.0/include  -fopenmp -fpic  -g -O2  -c forder.c -o forder.o
forder.c: In function 'range_str':
forder.c:296: error: expected end of line before 'update'
make: *** [forder.o] Error 1
ERROR: compilation failed for package 'data.table'
* removing '/share/ClusterShare/software/contrib/seyyaz/R_libs/data.table'
* restoring previous '/share/ClusterShare/software/contrib/seyyaz/R_libs/data.table'

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS release 6.8 (Final)

Matrix products: default
BLAS: /share/ClusterShare/software/contrib/seyyaz/R-v3.5.1/lib64/R/lib/libRblas.so
LAPACK: /share/ClusterShare/software/contrib/seyyaz/R-v3.5.1/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.iso885915       LC_NUMERIC=C
 [3] LC_TIME=en_US.iso885915        LC_COLLATE=en_US.iso885915
 [5] LC_MONETARY=en_US.iso885915    LC_MESSAGES=en_US.iso885915
 [7] LC_PAPER=en_US.iso885915       LC_NAME=C
 [9] LC_ADDRESS=C                   LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.iso885915 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] usethis_1.4.0  devtools_2.0.1

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0         ps_1.3.0           prettyunits_1.0.2  rprojroot_1.3-2
 [5] withr_2.1.2        digest_0.6.18      crayon_1.3.4       assertthat_0.2.0
 [9] R6_2.3.0           backports_1.1.3    magrittr_1.5       rlang_0.3.1
[13] cli_1.0.1          curl_3.3           fs_1.2.6           remotes_2.0.2
[17] callr_3.1.1        desc_1.2.0         tools_3.5.1        glue_1.3.0
[21] pkgload_1.0.2      compiler_3.5.1     processx_3.2.1     pkgbuild_1.0.2
[25] BiocManager_1.30.4 sessioninfo_1.1.1  memoise_1.1.0

пожалуйста, сообщите также версию ваших компиляторов, что-то вроде gcc --version

У меня был gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17). Я также скомпилировал одну версию с gcc-7.3.0, и она тоже выдает ошибку

Кажется, это связано с CentOS. У меня была та же проблема, что и у s-yazar при новой установке R.

Проблема решилась обновлением gcc до 4.9.0.

@Huitziii спасибо за отзыв. Тем не менее странно, что @s-yazar получает ошибку на gcc-7.3, в то время как для вас обновление до gcc-4.9 решило проблему. На данный момент у нас нет под рукой среды, чтобы воспроизвести эту проблему.

Привет @jangorecki ,
Я вернулся и снова перекомпилировал R 3.5.1 с gcc-7.3. На этот раз без проблем установил data.table. Не уверен, что вызвало более раннюю ошибку.

@s-yazar спасибо за отзыв.
Итак, на данный момент ошибка компиляции @s-yazar и @Huitziii была решена путем обновления компилятора.
@iembry , вы можете обновить свой компилятор?

@iembry, пожалуйста, сообщите нам, решило ли обновление компилятора проблему, если нет, я снова открою эту проблему.

Я столкнулся с той же проблемой в системе RedHat с gcc v4.4.7 - я установил devtoolset-2 , как описано здесь: https://unix.stackexchange.com/a/125621 , так как «стандартный» RedHat gcc дистрибутив по-прежнему v4.4.7, поэтому обновление yum ничего не дало (мне также пришлось загрузить и установить ключ GPG, как указано в этом комментарии )

devtoolset-2 содержит кучу вещей, в том числе более новый gcc v4.8.2, включите эту среду:

source scl_source enable devtoolset-2

а то у вас gcc v4.8.2, а потом сработала установка data.table v1.1.2.0.

@philippbayer спасибо за отзыв

@jangorecki Прошу прощения за мой очень запоздалый ответ, но нет, я не могу обновить свой компилятор, пока не обновлю свой компьютер и не обновлю свой дистрибутив. У меня гораздо более старая версия компилятора gcc, но я не помню, какая сейчас версия.

Возможно ли разместить версию компилятора gcc > на странице CRAN для data.table?

Спасибо.

Доставка версии таблицы данных, которая не будет компилироваться в полностью обновленной версии последней версии RedHat OS, кажется довольно недружественным шагом. Заставлять людей устанавливать новый компилятор из неосновного репозитория для совершенно новой установки — не лучший опыт.

Неужели нет патча, который позволил бы коду по-прежнему работать под gcc 4.4.7?

@s-andrews, согласно https://access.redhat.com/solutions/19458 , последним является RHEL7 и поставляется с gcc 4.8.x. Какая у вас версия ОС?
Согласно комментарию выше, он хорошо компилируется на gcc 4.8.2. Обратите внимание, что версии 4.8.2 почти 6 лет.
В то же время наша зависимость от R составляет не менее R 3.1, что составляет 5 лет. Таким образом, мы можем сказать, что у нас более обратная совместимость с gcc, чем с R.

@iembry извините за поздний ответ, я пропустил ваш комментарий раньше. Я не уверен, что это возможно, поскольку gcc не нужен для компиляции data.table, есть много других компиляторов, поэтому перечисление только gcc в DESCRIPTION выглядит неуместным.

@jangorecki Извините, я идиот. Сервер, на котором я был, по-видимому, все еще работает под управлением Redhat 6, и у меня нет проблем с тем, что он не поддерживается. Здорово, что на 7 до сих пор работает из коробки.

@jangorecki Ничего страшного в твоем запоздалом ответе. Я понимаю вашу точку зрения о том, что gcc не является единственным компилятором. Спасибо, что ответили.

Я получаю ту же ошибку при установке data.table. Вот вывод sessionInfo() :

R version 3.5.3 (2019-03-11)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 8 (jessie)

Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.0
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.3 tools_3.5.3 

Моя версия gcc — gcc (Debian 4.9.2-10+deb8u2) 4.9.2, что должно подойти, судя по комментариям выше.

Я бы попробовал обновить gcc, но у меня нет прав root.

Не могли бы вы предоставить вывод журнала установки?

Вот результат (он почти такой же, как и в исходном посте):

> install.packages("data.table", repos="http://cran.cnr.berkeley.edu/")
Installing package into ‘/home/jcasti15/R/x86_64-pc-linux-gnu-library/3.5’
(as ‘lib’ is unspecified)
trying URL 'http://cran.cnr.berkeley.edu/src/contrib/data.table_1.12.2.tar.gz'
Content type 'application/x-gzip' length 3343698 bytes (3.2 MB)
==================================================
downloaded 3.2 MB

* installing *source* package ‘data.table’ ...
** package ‘data.table’ successfully unpacked and MD5 sums checked
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c assign.c -o assign.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c between.c -o between.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c bmerge.c -o bmerge.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c chmatch.c -o chmatch.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c dogroups.c -o dogroups.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fastmean.c -o fastmean.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fcast.c -o fcast.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fmelt.c -o fmelt.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c forder.c -o forder.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c frank.c -o frank.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fread.c -o fread.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c freadR.c -o freadR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c froll.c -o froll.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c frollR.c -o frollR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c frolladaptive.c -o frolladaptive.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fsort.c -o fsort.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fwrite.c -o fwrite.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c fwriteR.c -o fwriteR.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c gsumm.c -o gsumm.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c ijoin.c -o ijoin.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c init.c -o init.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c inrange.c -o inrange.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c nqrecreateindices.c -o nqrecreateindices.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c openmp-utils.c -o openmp-utils.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c quickselect.c -o quickselect.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c rbindlist.c -o rbindlist.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c reorder.c -o reorder.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c shift.c -o shift.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=
format-security -D_FORTIFY_SOURCE=2 -g  -c subset.c -o subset.o
subset.c: In function ‘subsetVectorRaw’:
subset.c:36:105: error: stray ‘#’ in program
     PARLOOP(NA_INTEGER)
                                                                                                         ^
subset.c:36:106: error: unknown type name ‘pragma’
     PARLOOP(NA_INTEGER)
                                                                                                          ^
subset.c:36:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_INTEGER)
                                                                                                                     ^
subset.c:36:16: error: ‘i’ undeclared (first use in this function)
     PARLOOP(NA_INTEGER)
                ^
subset.c:36:16: note: each undeclared identifier is reported only once for each function it appears in
subset.c:36:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_INTEGER)
                        ^
subset.c:36:24: error: expected statement before ‘)’ token
subset.c:42:124: error: stray ‘#’ in program
       PARLOOP(INT64_MIN)

      ^
subset.c:42:125: error: unknown type name ‘pragma’
       PARLOOP(INT64_MIN)

       ^
       subset.c:42:136: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(INT64_MIN)

                  ^
subset.c:42:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(INT64_MIN)
                        ^
subset.c:42:24: error: expected statement before ‘)’ token
subset.c:46:106: error: stray ‘#’ in program
       PARLOOP(NA_REAL)
                                                                                                          ^
subset.c:46:107: error: unknown type name ‘pragma’
       PARLOOP(NA_REAL)
                                                                                                           ^
subset.c:46:118: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(NA_REAL)

^
subset.c:46:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(NA_REAL)
                        ^
subset.c:46:24: error: expected statement before ‘)’ token
subset.c:81:105: error: stray ‘#’ in program
     PARLOOP(NA_CPLX)
                                                                                                         ^
subset.c:81:106: error: unknown type name ‘pragma’
     PARLOOP(NA_CPLX)
     subset.c:81:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_CPLX)
                                                                                                                     ^
subset.c:81:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_CPLX)
                        ^
subset.c:81:24: error: expected statement before ‘)’ token
subset.c:86:99: error: stray ‘#’ in program
     PARLOOP(0)
                                                                                                   ^
subset.c:86:100: error: unknown type name ‘pragma’
     PARLOOP(0)
                                                                                                    ^
subset.c:86:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(0)
                                                                                                               ^
subset.c:86:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(0)
                        ^
subset.c:86:24: error: expected statement before ‘)’ token
/usr/lib/R/etc/Makeconf:163: recipe for target 'subset.o' failed
make: *** [subset.o] Error 1
ERROR: compilation failed for package ‘data.table’
* removing ‘/home/jcasti15/R/x86_64-pc-linux-gnu-library/3.5/data.table’

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

Согласно @jc-castillo, проблема была воспроизведена с gcc 4.9.2 на Debian jessie. На данный момент мы хотим зависеть от gcc 4.8.2+, таким образом повторно открывая.
Кто-нибудь знает, есть ли способ сбросить версию gcc на консоль в начале установки пакета? Может случиться так, что установлен более новый gcc, но из-за конфигурации машины для установки пакета используется более старый gcc. Было бы полезно перепроверить это.

@jangorecki

проблема была воспроизведена с gcc 4.9.2 на Debian jessie. На данный момент мы хотим зависеть от gcc 4.8.2+, таким образом повторно открывая.

Если проблема воспроизводится с gcc 4.9.2, почему мы хотим зависеть от еще более ранней версии gcc (4.8.2+)?

Из нескольких прошлых отчетов мы заметили, что 4.8.2+ была достаточно новой. Есть только один отчет, который сюда не подходит. Прежде чем заявлять о зависимости от 4.9.2 (или более поздней версии), было бы лучше дважды проверить, какая версия фактически используется во время установки.

@ jc-castillo, можете ли вы подтвердить свой вывод gcc --version , пожалуйста, перепроверьте. См. комментарий @jangorecki выше.

~/.R/Makevars может в конечном итоге переопределить gcc --version во время установки из R, не могли бы вы также проверить это? если у вас нет этого файла, то все должно быть в порядке.

@mattdowle Makevars уже влияет на скрипты конфигурации? или просто компиляция pkg src? мы могли бы, возможно, добавить печать из скрипта configure, чтобы отладка таких проблем была проще, имея версию gcc в 00install.out.

@jangorecki gcc --version , напечатанный шрифтом configure , звучит хорошо. Необходимо обернуть так, чтобы, если gcc недоступен, это не привело к сбою configure . Пользователь может использовать другой компилятор и не установить gcc . В разделе R-exts 1.2 упоминается R CMD config , который также может быть полезен для выделения из configure .

@ jc-castillo, не могли бы вы повторить попытку установить последнюю версию для разработки в той же среде, в которой она не удалась раньше? мы добавили дополнительный вывод для версии gcc, чтобы убедиться, какая версия используется процессом R для компиляции исходных кодов пакетов.

Я закрываю эту тему, и единственное, что нужно расследовать, это сообщение @jc-castillo, и он больше не отвечает. Установка теперь печатает версию gcc, поэтому мы можем более точно отследить, какая версия gcc используется во время компиляции. @ jc-castillo, пожалуйста, сообщите нам, если эта проблема все еще затрагивает вас, мы всегда можем повторно открыть эту проблему.

При установке data.table для текущего r-devel у меня также возникает такая же проблема в 64-разрядной версии GNU/Linux Mint 17.3 Cinnamon.

Ниже мой вывод:

install.packages("data.table")
Installing package into ‘/usr/local/lib/R-devel/lib/R/library’
(as ‘lib’ is unspecified)
trying URL 'https://cran.dcc.uchile.cl/src/contrib/data.table_1.12.8.tar.gz'
Content type 'application/x-gzip' length 4948391 bytes (4.7 MB)
==================================================
downloaded 4.7 MB

* installing *source* package ‘data.table’ ...
** package ‘data.table’ successfully unpacked and MD5 sums checked
** using staged installation
zlib 1.2.8 is available ok
** libs
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c assign.c -o assign.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c between.c -o between.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c bmerge.c -o bmerge.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c chmatch.c -o chmatch.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c cj.c -o cj.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c coalesce.c -o coalesce.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c dogroups.c -o dogroups.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fastmean.c -o fastmean.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fcast.c -o fcast.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fifelse.c -o fifelse.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fmelt.c -o fmelt.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c forder.c -o forder.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c frank.c -o frank.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fread.c -o fread.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c freadR.c -o freadR.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c froll.c -o froll.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c frollR.c -o frollR.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c frolladaptive.c -o frolladaptive.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fsort.c -o fsort.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fwrite.c -o fwrite.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c fwriteR.c -o fwriteR.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c gsumm.c -o gsumm.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c ijoin.c -o ijoin.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c init.c -o init.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c inrange.c -o inrange.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c nafill.c -o nafill.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c nqrecreateindices.c -o nqrecreateindices.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c openmp-utils.c -o openmp-utils.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c quickselect.c -o quickselect.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c rbindlist.c -o rbindlist.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c reorder.c -o reorder.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c shift.c -o shift.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c subset.c -o subset.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c transpose.c -o transpose.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c types.c -o types.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c uniqlist.c -o uniqlist.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c utils.c -o utils.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c vecseq.c -o vecseq.o
ccache gcc -I"/usr/local/lib/R-devel/lib/R/include" -DNDEBUG   -I/usr/local/include  -fopenmp -fpic  -ggdb -pipe -std=gnu99 -Wall -pedantic  -c wrappers.c -o wrappers.o
subset.c: In function ‘subsetVectorRaw’:
subset.c:36:105: error: stray ‘#’ in program
     PARLOOP(NA_INTEGER)
                                                                                                         ^
subset.c:36:106: error: unknown type name ‘pragma’
     PARLOOP(NA_INTEGER)
                                                                                                          ^
subset.c:36:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_INTEGER)
                                                                                                                     ^
subset.c:36:16: error: ‘i’ undeclared (first use in this function)
     PARLOOP(NA_INTEGER)
                ^
subset.c:36:16: note: each undeclared identifier is reported only once for each function it appears in
subset.c:36:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_INTEGER)
                        ^
subset.c:36:24: error: expected statement before ‘)’ token
subset.c:42:124: error: stray ‘#’ in program
       PARLOOP(INT64_MIN)
                                                                                                                            ^
subset.c:42:125: error: unknown type name ‘pragma’
       PARLOOP(INT64_MIN)
                                                                                                                             ^
subset.c:42:136: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(INT64_MIN)
                                                                                                                                        ^
subset.c:42:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(INT64_MIN)
                        ^
subset.c:42:24: error: expected statement before ‘)’ token
subset.c:46:106: error: stray ‘#’ in program
       PARLOOP(NA_REAL)
                                                                                                          ^
subset.c:46:107: error: unknown type name ‘pragma’
       PARLOOP(NA_REAL)
                                                                                                           ^
subset.c:46:118: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
       PARLOOP(NA_REAL)
                                                                                                                      ^
subset.c:46:24: error: expected ‘;’ before ‘)’ token
       PARLOOP(NA_REAL)
                        ^
subset.c:46:24: error: expected statement before ‘)’ token
subset.c:80:105: error: stray ‘#’ in program
     PARLOOP(NA_CPLX)
                                                                                                         ^
subset.c:80:106: error: unknown type name ‘pragma’
     PARLOOP(NA_CPLX)
                                                                                                          ^
subset.c:80:117: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(NA_CPLX)
                                                                                                                     ^
subset.c:80:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(NA_CPLX)
                        ^
subset.c:80:24: error: expected statement before ‘)’ token
subset.c:85:99: error: stray ‘#’ in program
     PARLOOP(0)
                                                                                                   ^
subset.c:85:100: error: unknown type name ‘pragma’
     PARLOOP(0)
                                                                                                    ^
subset.c:85:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘parallel’
     PARLOOP(0)
                                                                                                               ^
subset.c:85:24: error: expected ‘;’ before ‘)’ token
     PARLOOP(0)
                        ^
subset.c:85:24: error: expected statement before ‘)’ token
make: *** [subset.o] Error 1
ERROR: compilation failed for package ‘data.table’
* removing ‘/usr/local/lib/R-devel/lib/R/library/data.table’

The downloaded source packages are in
    ‘/tmp/RtmpPBv7Mi/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning message:
In install.packages("data.table") :
  installation of package ‘data.table’ had non-zero exit status

Моя версия gcc:

gcc --version gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4

@hzambran выглядит как связанный с OpenMP? Можете ли вы попробовать установить текущую версию dev? Журнал должен включать диагностику вашей установки OpenMP.

@hzambran , не могли бы вы отключить ccache и использовать gcc непосредственно во время установки? а затем обеспечить вывод.

Спасибо за ответ.

Я не эксперт в компиляции, поэтому не могли бы вы рассказать мне, как отключить ccache и использовать gcc непосредственно во время установки?

Я также пытался использовать текущую версию data.table для разработчиков, но получил ту же ошибку.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги