C and Fortran
Julia has a single ccall()
function that will run a routine compiled and bundled into a shared object library.
The call has the form
ccall((func,libr),ret_type,(arg1_type,arg2_type, …),arg1,
arg2, …)
where the object code for the func
function is present in the libr
shared library and returns a value of ret_type
, followed by an optional tuple of arguments and the actual argument values.
If the library name is omitted, then it defaults to the default Julia library, libjulia
, and in this case, the first argument is now specified as a string rather than a tuple.
If necessary, Julia can “find” the library, which usually requires adding it to a library on the LD_LIBRARY_PATH
load library path or modifying the latter to contain a new directory.
Note
As of version 1.0+, ccall()
may have a function pointer as a first argument.
An alternate, more convenient form, is to use the @
ccall
macro:
@ccall
lib.fun(arg1::arg1_type,arg2...