Hi,
I've tried to compile the netCDF3 distribution on a linux system:
I did the following steps:
- unpacking the archive
- configure
- make
- make test
make test in directory nc_test occured an error:
Making `test' in directory /root/tmp/netcdf-3.1a/src/nc_test
make[2]: Entering directory `/root/tmp/netcdf-3.1a/src/nc_test'
cc -c -I../libsrc nc_test.c
cc -c -I../libsrc error.c
cc -c -I../libsrc test_get.c
cc -c -I../libsrc test_put.c
cc -c -I../libsrc test_read.c
cc -c -I../libsrc test_write.c
cc -c -I../libsrc util.c
cc -o nc_test -I../libsrc nc_test.o error.o test_get.o test_put.o
test_read.o test_write.o util.o \
../libsrc/libnetcdf.a -lm
/nc_test -c
make[2]: *** [test.nc] Floating point exception
make[2]: *** Deleting file `test.nc'
make[2]: Leaving directory `/root/tmp/netcdf-3.1a/src/nc_test'
make[1]: *** [subdir_target] Error 1
make[1]: Leaving directory `/root/tmp/netcdf-3.1a/src'
make: *** [nc_test/test] Error 2
I tried to find out what the problem is. So I called make clean in the
nc_test directory and modified the Makefile adding the lines:
CC=gcc
CFLAGS= -g -Wall
result of make:
gcc -c -g -Wall -I../libsrc nc_test.c
nc_test.c: In function `main':
nc_test.c:102: warning: implicit declaration of function `getopt'
nc_test.c:92: warning: unused variable `optopt'
nc_test.c:91: warning: unused variable `optind'
gcc -c -g -Wall -I../libsrc error.c
gcc -c -g -Wall -I../libsrc test_get.c
gcc -c -g -Wall -I../libsrc test_put.c
gcc -c -g -Wall -I../libsrc test_read.c
gcc -c -g -Wall -I../libsrc test_write.c
gcc -c -g -Wall -I../libsrc util.c
gcc -o nc_test -g -Wall -I../libsrc nc_test.o error.o test_get.o test_put.o
test_read.o test_write.o util.o \
../libsrc/libnetcdf.a -lm
ld: Output file requires shared library `libc.so.4'
gcc: Internal compiler error: program ld got fatal signal 6
make: *** [nc_test] Error 1
Strange, I've got the libc.so.4 library. So I made another try. Again I modified
the Makefile: LIBS= -lm -lc
Now everything was compiled correctly (except of the warnings which can
be cleared by adding #include <unistd.h> in tests.h).
But calling nc_test -c results to an 'Floating Exception'.
With the gdb I could figure out the source code line which occurs the error:
In util.c, line 563:
563 err = nc_put_att_double(ncid, i, ATT_NAME(i,j),
2: j = 3
1: i = -1
(gdb) n
Program received signal SIGFPE, Arithmetic exception.
0x9391a in ncx_put_int_double ()
(gdb)
Okay. Can somebody help me? Is the problem on my side or is there an error
in the netCDF3 distribution?
Thanks for any hints.
Tim
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
( o ) "Paddington on the Rocks"
()~*~()
(_)-(_) Tim Weilkiens, Kiel, Germany
/\ Tim.Weilkiens@xxxxxxxxxxxxxxx
/ \/\ tim-w@xxxxxxxxxxxxxxxxxxxxxxxxxxx
/\ / \ http://oekoalpha.pz-oekosys.uni-kiel.de/~tim-w