end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

R-3.2.2 の linux への install には、gcc-gfortran が必要

何も考えずに configure & make したら、"Invalid declaration of or reference to symbol ..."エラー

$ wget https://cran.r-project.org/src/base/R-3/R-3.2.2.tar.gz
$ tar -xzvf R-3.2.2.tar.gz
$ cd R-3.2.2
$ ./configure --with-x=no
  :
config.status: executing stamp-h commands

R is now configured for x86_64-pc-linux-gnu

  Source directory:          .
  Installation directory:    /usr/local

  C compiler:                gcc -std=gnu99  -g -O2
  Fortran 77 compiler:       g77  -g -O2

  C++ compiler:              g++  -g -O2
  C++ 11 compiler:           g++  -std=c++0x -g -O2
  Fortran 90/95 compiler:    g77 -g -O2
  Obj-C compiler:             

  Interfaces supported:      
  External libraries:        readline
  Additional capabilities:   PNG, JPEG, NLS
  Options enabled:           shared BLAS, R profiling

  Capabilities skipped:      TIFF, cairo, ICU
  Options not enabled:       memory profiling

  Recommended packages:      yes

configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages

$ make
  :
make[4]: Entering directory `/home/endo/tmp/R-3.2.2/src/modules/lapack'
g77 -fpic  -g -O2 -ffloat-store -c dlamch.f -o dlamch.o
dlamch.f: In function `dlamch':
dlamch.f:89: warning:
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                            ^
Reference to unimplemented intrinsic `DIGITS' at (^) (assumed EXTERNAL)
dlamch.f:89: 
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                            ^
Invalid declaration of or reference to symbol `digits' at (^) [initially seen at (^)]
dlamch.f:89: warning:
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                    ^
Reference to unimplemented intrinsic `EPSILON' at (^) (assumed EXTERNAL)
dlamch.f:89: 
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                    ^
Invalid declaration of or reference to symbol `epsilon' at (^) [initially seen at (^)]
dlamch.f:89: warning:
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                             ^
Reference to unimplemented intrinsic `HUGE' at (^) (assumed EXTERNAL)
dlamch.f:89: 
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                             ^
Invalid declaration of or reference to symbol `huge' at (^) [initially seen at (^)]
dlamch.f:89: warning:
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                                   ^
Reference to unimplemented intrinsic `MAXEXPONENT' at (^) (assumed EXTERNAL)
dlamch.f:89: 
         INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
                                                   ^
Invalid declaration of or reference to symbol `maxexponent' at (^) [initially seen at (^)]
dlamch.f:90: warning:
        $                   MINEXPONENT, RADIX, TINY
                            ^
Reference to unimplemented intrinsic `MINEXPONENT' at (^) (assumed EXTERNAL)
dlamch.f:90: 
        $                   MINEXPONENT, RADIX, TINY
                            ^
Invalid declaration of or reference to symbol `minexponent' at (^) [initially seen at (^)]
dlamch.f:90: warning:
        $                   MINEXPONENT, RADIX, TINY
                                         ^
Reference to unimplemented intrinsic `RADIX' at (^) (assumed EXTERNAL)
dlamch.f:90: 
        $                   MINEXPONENT, RADIX, TINY
                                         ^
Invalid declaration of or reference to symbol `radix' at (^) [initially seen at (^)]
dlamch.f:90: warning:
        $                   MINEXPONENT, RADIX, TINY
                                                ^
Reference to unimplemented intrinsic `TINY' at (^) (assumed EXTERNAL)
dlamch.f:90: 
        $                   MINEXPONENT, RADIX, TINY
                                                ^
Invalid declaration of or reference to symbol `tiny' at (^) [initially seen at (^)]
make[4]: *** [dlamch.o] Error 1
make[4]: Leaving directory `/home/endo/tmp/R-3.2.2/src/modules/lapack'
make[3]: *** [R] Error 2
make[3]: Leaving directory `/home/endo/tmp/R-3.2.2/src/modules/lapack'
make[2]: *** [make.lapack] Error 2
make[2]: Leaving directory `/home/endo/tmp/R-3.2.2/src/modules'
make[1]: *** [R] Error 1
make[1]: Leaving directory `/home/endo/tmp/R-3.2.2/src'
make: *** [R] Error 1

先程のエラーメッセージでググルと、gfortran が必要らしい

# yum install gcc-gfortran

改めて、configure ; make ; make install し、成功

$ ./configure --with-x=no
  :
config.status: executing stamp-h commands

R is now configured for x86_64-pc-linux-gnu

  Source directory:          .
  Installation directory:    /usr/local

  C compiler:                gcc -std=gnu99  -g -O2
  Fortran 77 compiler:       gfortran  -g -O2

  C++ compiler:              g++  -g -O2
  C++ 11 compiler:           g++  -std=c++0x -g -O2
  Fortran 90/95 compiler:    gfortran -g -O2
  Obj-C compiler:             

  Interfaces supported:      
  External libraries:        readline
  Additional capabilities:   PNG, JPEG, NLS
  Options enabled:           shared BLAS, R profiling

  Capabilities skipped:      TIFF, cairo, ICU
  Options not enabled:       memory profiling

  Recommended packages:      yes

configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages
$ make
$ su
# make install