[R] ncdf4 installation problem: undefined symbol [SEC=UNCLASSIFIED]

David W. Pierce dpierce at ucsd.edu
Tue Feb 5 17:59:16 CET 2013


On Mon, Feb 4, 2013 at 7:07 PM, Andrew Harley <A.Harley at bom.gov.au> wrote:
> Hello,
>
> I'm trying to install ncdf4 on RHEL 5.8, R version 2.15.1.
>
> Previously installed is netcdf 3.6.2 from Red Hat, so I've compiled and installed netcdf 4.2.1.1 (with hdf5 and zlib as per install instructions, and also set --enable-netcdf4 option) into /usr/local.
>
> When attempting to install ncdf4 it is failing with:
>
> ** testing if installed package can be loaded
> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>   unable to load shared object '/usr/lib64/R/library/ncdf4/libs/ncdf4.so':
>   /usr/lib64/R/library/ncdf4/libs/ncdf4.so: undefined symbol: nc_inq_var_deflate
> Error: loading failed
> Execution halted


Hi Andrew,

I think it's reasonably likely that some components of the old netcdf
library installation are being found by mistake. The compiler system
makes it easy to include library locations, but hard to exclude
library locations, so this kind of error is not uncommon. I suggest
first removing all  instances of the old libnetcdf and netcdf.h from
your machine, and then try again.

Regards,

--Dave

<rest of previous message is below>

>
> I'm guessing I'm missing somewhere that I need to specify the path, but the configure script picks up version netcdf 4.2.1.1 and explicitly setting LD_LIBRARY_PATH to /usr/local/lib doesn't help either. Can anyone please help with where I should be looking? Full command output below:
>
> $ R CMD INSTALL ncdf4_1.6.1.tar.gz
> * installing to library '/usr/lib64/R/library'
> * installing *source* package 'ncdf4' ...
> ** package 'ncdf4' successfully unpacked and MD5 sums checked
> checking for nc-config... yes
> Using nc-config: nc-config
> Output of nc-config --all:
>
> This netCDF 4.2.1.1 has been built with the following features:
>
>   --cc        -> gcc
>   --cflags    ->  -I/usr/local/include -I/usr/local/include
>   --libs      -> -L/usr/local/lib -lnetcdf
>
>   --has-c++   -> no
>   --cxx       ->
>   --has-c++4  -> no
>   --cxx4      ->
>
>   --fc        ->
>   --fflags    ->
>   --flibs     ->
>   --has-f90   -> no
>
>   --has-dap   -> no
>   --has-nc2   -> yes
>   --has-nc4   -> yes
>   --has-hdf5  -> yes
>   --has-hdf4  -> no
>   --has-pnetcdf-> no
>   --has-szlib ->
>
>   --prefix    -> /usr/local
>   --includedir-> /usr/local/include
>   --version   -> netCDF 4.2.1.1
>
> ---
> netcdf.m4: about to set rpath, here is source string: >-L/usr/local/lib -lnetcdf<
> netcdf.m4: final rpath:   -Wl,-rpath,/usr/local/lib
> Netcdf library version: netCDF 4.2.1.1
> Netcdf library has version 4 interface present: yes
> Netcdf library was compiled with C compiler: gcc
> configure: creating ./config.status
> config.status: creating R/load.R
> config.status: creating src/Makevars
>
> **********************  Results of ncdf4 package configure *******************
>
> netCDF v4 CPP flags     = -I/usr/local/include -I/usr/local/include
> netCDF v4 LD flags      =   -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lnetcdf
> netCDF v4 runtime path  =   -Wl,-rpath,/usr/local/lib
>
> ******************************************************************************
>
> ** libs
> gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -I/usr/local/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c ncdf.c -o ncdf.o
> gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -I/usr/local/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c ncdf2.c -o ncdf2.o
> gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -I/usr/local/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c ncdf3.c -o ncdf3.o
> gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/local/include -I/usr/local/include -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c src_ncdf4.c -o src_ncdf4.o
> gcc -m64 -std=gnu99 -shared -L/usr/local/lib64 -o ncdf4.so ncdf.o ncdf2.o ncdf3.o src_ncdf4.o -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lnetcdf -L/usr/lib64/R/lib -lR
> installing to /usr/lib64/R/library/ncdf4/libs
> ** R
> ** preparing package for lazy loading
> ** help
> *** installing help indices
>   converting help for package 'ncdf4'
>     finding HTML links ... done
>     ancdf4                                  html
> Rd warning: /tmp/RtmpSxjZ1u/R.INSTALL3e7b250a942e/ncdf4/man/ancdf4.Rd:58: missing file link 'ncvar_put'
> Rd warning: /tmp/RtmpSxjZ1u/R.INSTALL3e7b250a942e/ncdf4/man/ancdf4.Rd:76: missing file link 'ncvar_put'
>     ancvar_put                              html
>     nc_close                                html
>     nc_create                               html
>     nc_enddef                               html
>     nc_open                                 html
>     nc_redef                                html
>     nc_sync                                 html
>     nc_version                              html
>     ncatt_get                               html
>     ncatt_put                               html
>     ncdf4-internal                          html
>     ncdim_def                               html
>     ncvar_add                               html
>     ncvar_change_missval                    html
>     ncvar_def                               html
> Rd warning: /tmp/RtmpSxjZ1u/R.INSTALL3e7b250a942e/ncdf4/man/ncvar_def.Rd:67: missing file link 'ncvar_put'
> Rd warning: /tmp/RtmpSxjZ1u/R.INSTALL3e7b250a942e/ncdf4/man/ncvar_def.Rd:100: missing file link 'ncvar_put'
>     ncvar_get                               html
> Rd warning: /tmp/RtmpSxjZ1u/R.INSTALL3e7b250a942e/ncdf4/man/ncvar_get.Rd:77: missing file link 'ncvar_put'
>     ncvar_rename                            html
>     print.ncdf4                             html
> ** building package indices
> ** testing if installed package can be loaded
> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>   unable to load shared object '/usr/lib64/R/library/ncdf4/libs/ncdf4.so':
>   /usr/lib64/R/library/ncdf4/libs/ncdf4.so: undefined symbol: nc_inq_var_deflate
> Error: loading failed
> Execution halted
> ERROR: loading failed
> * removing '/usr/lib64/R/library/ncdf4'
>
> Thanks,
>
> Andrew Harley
> Linux Systems Administrator
> Climate and Water Division (ICT Operations)
> Bureau of Meteorology, Australia
> 03 9616 8441
> http://www.bom.gov.au/water/
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



--
David W. Pierce
Division of Climate, Atmospheric Science, and Physical Oceanography
Scripps Institution of Oceanography, La Jolla, California, USA
(858) 534-8276 (voice)  /  (858) 534-8561 (fax)    dpierce at ucsd.edu



More information about the R-help mailing list