Re: CALL_EXTERNAL in Linux Fedore Core2??? [message #40917] |
Wed, 08 September 2004 14:13  |
umesh
Messages: 3 Registered: September 2004
|
Junior Member |
|
|
Hi David and Bob,
Thanks a lot for your reply. I changed the names of the files to
braintest.c and braintest.pro and changed the return value to IDL_INT
(;-))
PRO braintest
sc = 5.0
xx=CALL_EXTERNAL('/home/upadiga/work/IDLwork/braintest.so',' braintest',
sc)
print, sc
end
#include <stdio.h>
#include <math.h>
#include "/usr/local/rsi/idl_6.0/external/include/idl_export.h"
float Scale;
IDL_INT braintest(int argc, char *argv[])
{
Scale = *(float *) argv[0];
Scale = pow(Scale, 5);
return(1);
}
and compiled with
gcc -c -fPIC braintest.c
ld -shared -o braintest.so braintest.o
IDL>.r braintest
IDL>braintest
gives me the error message:
% CALL_EXTERNAL: Error loading sharable executable.
Symbol: braintest, File =
/home/upadiga/work/IDLwork/braintest.so
/home/upadiga/work/IDLwork/braintest.so: cannot open
shared
object file: No such file or directory
% Execution halted at: BRAINTEST 4
/home/upadiga/work/IDLwork/braintest.pro
% $MAIN$
This is very similar to the earlier one.
The file "braintest.so" is there in "/home/upadiga/work/IDLwork/"
directory.
I copied the shared library file "braintest.so" to
"/usr/local/rsi/idl_6.0/bin/bin.linux.x86/" and tried again. The error
message is the same. I then copied the "braintest.so" to
"/home/upadiga/.idl/idl_6_0_linux_x86_m32_f64/compile_dir/" and ran the
idl program again but the error message is same!!
Is there any problem in my compilation and loading commands. Do I have to
make some file to direct the dll (like I used make in IDL5.5 on
Windows2000).
Please let me know!
Thanks again,
umesh
If not, I am not sure where is the problem!?
|
|
|