Re: CALL_EXTERNAL in Linux Fedore Core2??? [message #40930 is a reply to message #40929] |
Tue, 07 September 2004 20:58  |
David G. Grier
Messages: 8 Registered: September 1997
|
Junior Member |
|
|
Hi There,
umesh wrote:
> Hi!
>
> I am trying to call a simple C program (test.c) from a IDL program using
> CALL_EXTERNAL. The C program is,
>
> #include <stdio.h>
>
> #include <math.h>
>
> #include"/usr/local/rsi/idl_6.0/external/include/idl_export.h "
>
> float Scale;
> int test(int argc, char *argv[])
>
> {
>
> Scale = *(float *) argv[0];
>
>
> Scale = pow(Scale, 5);
>
> return(1);
>
> }
>
>
> IDL program is
>
> PRO test
>
> sc = 5.0
> xx=CALL_EXTERNAL('/home/upadiga/work/IDLwork/test', $
> '/home/upadiga/work/IDLwork/test', $
> sc)
Here's the problem. The shared object file is
"/home/upadiga/work/IDLwork/test.so", not
"/home/upadiga/work/IDLwork/test".
That's why the file's not being found.
Furthermore, the object within the library is
"test", not
"/home/upadiga/work/IDLwork/test".
Finally, it's not a good idea to call any routine
"test" because "test" tends to mean something
specific already on most machines.
Hope this helps.
TTFN,
David
>
> print, sc
> end
>
> In directory /home/upadiga/work/IDLwork/test
>
> I have followed following compilation and linking procedures!!
>
>> gcc -c -fPIC test.c
>> ld -shared -o test.so test.o
>
> Then in the IDL command line,
>
> IDL>.r test
> IDL>test
>
> I get the following error message.
>
> % CALL_EXTERNAL: Error loading sharable executable.
> Symbol: /home/upadiga/work/IDLwork/test, File =
> /home/upadiga/work/IDLwork/test
> /home/upadiga/work/IDLwork/test: cannot open shared
> object file: No such file or
> directory
> % Execution halted at: TEST 4
> /home/upadiga/work/IDLwork/test.pro
> % $MAIN$
>
>
> Experts out there, could you please tell me how should I compile and link
> the shared library!? I am using IDL6.0 on Linux (Fedora Core2 64bit OS).
>
> Thanks a lot
>
> umesh
--
============================================================ =============
David G. Grier Department of Physics
(212) 998-3713 (voice) Center for Soft Matter Research
(212) 995-4016 (FAX) New York University
david.grier@nyu.edu 4 Washington Place
http://physics.nyu.edu/grierlab/ New York, NY 10003
============================================================ =============
|
|
|