Re: need help linking

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Fri, 31 Aug 2007 14:11:34 -0600 (MDT)

Jason,

The "icfell" and "seter" symbols should be in the "ncarg" (libncarg.a)
library. There can be a couple of things wrong here.

One is maybe your compiler is expecting there to be underscores
appended after the name of every Fortran subroutine in the library,
but NCAR Graphics was compiled such that these underscores were
removed.

The second possibility is that these symbols just didn't get compiled
into the library for some reason, but this is unlikely.

Can you type the following and let me know what it says:

    nm $NCARG_ROOT/lib/libncarg.a | grep icfell
    nm $NCARG_ROOT/lib/libncarg.a | grep seter

Also, did you build NCAR Graphics from source, or install from a
pre-compiled binary? If you built from source, which compilers did you
use? If you used a binary, which one did you download?

Thanks,

--Mary

On Fri, 31 Aug 2007, Jason Tillett wrote:

> I have a (I believe) mixed c/c++ program and am trying to use
> c_cssgrid. I am using ncargcc to compile. I have been able to
> solve all linking problems except 1. There remain unresolved
> references to icfell_ and seter_.
>
> Here is the output of the command
>
> ncargcc RingDaemon_single.cc -ngmath -noX11
>
> gcc -v -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DByteSwapped -DNeedFuncProto -ansi -O RingDaemon_single.cc /home/jtillett/ncarg_files/lib/ncarg/robj/ggkwdr_stub.o -L/home/jtillett/ncarg_files/lib -L/usr/X11R6/lib -I/home/jtillett/ncarg_files/include -lncarg -lncarg_gks -lncarg_c -lngmath -lg2c -lgcc -lm -lstdc++
> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.4.6 20060404 (Red Hat 3.4.6-8)
> /usr/libexec/gcc/i386-redhat-linux/3.4.6/cc1plus -quiet -v -I/home/jtillett/ncarg_files/include -D_GNU_SOURCE -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DByteSwapped -DNeedFuncProto RingDaemon_single.cc -quiet -dumpbase RingDaemon_single.cc -ansi -auxbase RingDaemon_single -O -ansi -version -o /tmp/ccBMD0La.s
> ignoring nonexistent directory "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../i386-redhat-linux/include"
> #include "..." search starts here:
> #include <...> search starts here:
> /home/jtillett/ncarg_files/include
> /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6
> /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux
> /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/backward
> /usr/local/include
> /usr/lib/gcc/i386-redhat-linux/3.4.6/include
> /usr/include
> End of search list.
> GNU C++ version 3.4.6 20060404 (Red Hat 3.4.6-8) (i386-redhat-linux)
> compiled by GNU C version 3.4.6 20060404 (Red Hat 3.4.6-8).
> GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64310
> as -V -Qy -o /tmp/cckz9t3w.o /tmp/ccBMD0La.s
> GNU assembler version 2.15.92.0.2 (i386-redhat-linux) using BFD version 2.15.92.0.2 20040927
> /usr/libexec/gcc/i386-redhat-linux/3.4.6/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../crt1.o /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../crti.o /usr/lib/gcc/i386-redhat-linux/3.4.6/crtbegin.o -L/home/jtillett/ncarg_files/lib -L/usr/X11R6/lib -L/usr/lib/gcc/i386-redhat-linux/3.4.6 -L/usr/lib/gcc/i386-redhat-linux/3.4.6 -L/usr/lib/gcc/i386-redhat-linux/3.4.6/../../.. /tmp/cckz9t3w.o /home/jtillett/ncarg_files/lib/ncarg/robj/ggkwdr_stub.o -lncarg -lncarg_gks -lncarg_c -lngmath -lg2c -lgcc -lm -lstdc++ -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i386-redhat-linux/3.4.6/crtend.o /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../crtn.o
> /home/jtillett/ncarg_files/lib/libngmath.so: undefined reference to `seter_'
> /home/jtillett/ncarg_files/lib/libngmath.so: undefined reference to `icfell_'
> collect2: ld returned 1 exit status
>
>
> -------------------------------------------
>
>
> here is my ncargcc file (the first dozen or so lines)
>
>
>
> if ($status != 0) then
> exit 1
> endif
>
> set syslibdir = "-L/usr/X11R6/lib"
> set xlib = "-lX11 -lXext"
> set system = ""LINUX""
> set cc = "gcc -v"
> set defines = "-DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DByteSwapped -DNeedFuncProto"
> set loadflags = "-ansi -O "
> set libdir = `ncargpath lib`
> set incdir = `ncargpath include`
> set ro = "$libdir/ncarg/robj"
> set f77libs = "-lg2c -lgcc -lm"
> set libpath = "-L$libdir $syslibdir"
> set incpath = "-I$incdir"
>
> set libextra = "-lstdc++"
>
> set newargv = "$cc $defines $loadflags"
>
> set ctrans_libs = ""
> set stub_file = ""
>
> set smooth = "$ro/libdashsmth.o"
> set quick = "$ro/libdashline.o $ro/libconrcqck.o $ro/libconraq.o"
> set super = "$ro/libdashsupr.o $ro/libconrcspr.o $ro/libconras.o"
>
> #
> # set up default libraries
> #
> set libncarg = "-lncarg"
> set libgks = "-lncarg_gks"
> set libmath = ""
> set libncarg_c = "-lncarg_c"
>
> set robjs
>
>
> Thank You,
>
> Jason
>
>
>
_______________________________________________
ncarg-talk mailing list
ncarg-talk_at_ucar.edu
http://mailman.ucar.edu/mailman/listinfo/ncarg-talk
Received on Fri Aug 31 2007 - 14:11:34 MDT

This archive was generated by hypermail 2.2.0 : Fri Sep 07 2007 - 11:03:57 MDT