Hi All,
I wrote some C code to compute a ratio of bessel functions, and am now
trying to access it with Julia. I have compiled it into a shared library
with
"gcc -std=c99 -fPIC -shared -lm bessela1.c -o bessela1.so".
This compiles without any errors or warnings, and the code works.
I'm trying to use a function
'''
double bessela1(double x) {
// lots of code.
return y;
}
''' defined within the bessela1.c file. All functions it needs are also in
the .c file, and I don't use any other files.
So in my Julia code, I have
s = ccall( (:bessela1, path), Float64, (Float64, ), 0.5)
and path is the path to the bessela1.so file.
When I run this in julia, I get the following error:
ERROR: type: anonymous: in ccall: first argument not a pointer or valid
constant expression, expected DataType, got Type{(Any...,)}
in anonymous at no file
I believe that the C code is compiling correctly (I know it works in C),
and I can run dlopen() on the .so file and get a pointer back, but I'm not
sure what to do with that.
Can anyone point out what I'm doing incorrectly? I've also tried using
"bessela1" rather than :bessela1, but get the same error.
Thanks,
Patrick