s-news
[Top] [All Lists]

[no subject]

To: s-news@lists.biostat.wustl.edu
From: zikalayl@unity.ncsu.edu
Date: Tue, 24 Apr 2001 15:44:51 -500
User-agent: IMHO/0.97.1 (Webmail for Roxen)
Hi
(I am sorry if you got this message from me already)


I am running Splus3.4 on

Machine hardware:   sun4u
OS version:         5.6
Processor type:     sparc
Hardware:           SUNW,Ultra-5_10


I am calling a C code from within SPlus. I have a command in my C code which
generates random numbers. This command is imsls_d_random_chi_squared. When I
compile and run C alone, it works fine. But when I call it from within Splus it
says imsls_d_random_chi_squared is an undefined symbol and so doesn't work. To
handle the problem;

1)I have compiled my C code and made my object file test.o by using the command
  cc $CFLAGS -c runfile test.c $LINK_CNL  where
  $CFLAGS is -mt -fsingle -DANSI -I/afs/bp/dist/imsl401/CTT3.0/include and
  $LINK_CNL is -R/afs/bp/dist/imsl401/CTT3.0/lib/lib.solaris
-L/afs/bp/dist/imsl401/CTT3.0/lib/lib.solaris -limslcmath -limslcmathsup_imsl
-limslcstat -lm -lsocket -lnsl

2)I went to the directory  /afs/bp/dist/imsl401/CTT3.0/lib/lib.solaris. Here is
what is in this directory:
imslerr.bin              libimslblas.a            libimslcmathsup_perf.so
imslerr.dat              libimslblas.so           libimslcstat.a
imslfnl.dat              libimslcmath.a           libimslcstat.so
imsls_e.bin              libimslcmath.so          libimslmpistub.a
imsls_e.dat              libimslcmathsup_imsl.a   libimslp_err.a
libimsl.a                libimslcmathsup_imsl.so  libimsls_err.a
libimsl.so               libimslcmathsup_perf.a


3) I searched to find the symbol imsls_d_random_chi_squared by using nm and
grep commands as follows
  nm -o *.so | grep imsls_d_random_chi_squared
  Here is what I got:

[563]   |000000003020|000000000434|FUNC |GLOB |0    |1
     |imsls_d_random_chi_squared
[837]   |000000727170|000000000434|FUNC |GLOB |0    |1
     |imsls_d_random_gamma
[611]   |000000736460|000000000414|FUNC |GLOB |0    |1
     |imsls_d_random_normal
[389]   |000000745150|000000000414|FUNC |GLOB |0    |1
     |imsls_d_random_uniform

  That means I found my missing symbols
3)I linked the file which has the symbol (in this case it is libimslcstat.so I 
believe) to my object file prior to running my SPlus code by using the 
following command
 ld -r -dn -L /afs/bp/dist/imsl401/CTT3.0/lib/lib.solaris -o testout.o test.o
-limslcstat

4)Then to check if I solved the problem I did
ld -zdefs -o testout test.o

5) Unfortunately it looks like I haven't solved it yet. I got the following:
Undefined                       first referenced
 symbol                             in file
log                                 dene1.o
imsls_d_random_chi_squared          dene1.o
sqrt                                dene1.o
printf                              dene1.o
exp                                 dene1.o
free                                dene1.o
..div                                dene1.o


I wonder if you have experienced the same difficulty. Can you  please tell me 
what to do step by step? Thanks.

Zeynep Kalaylioglu
Department of Statistics
North Carolina State University



<Prev in Thread] Current Thread [Next in Thread>
  • [no subject], zikalayl <=