Suppose the code is
module MyLibrary
Base.@ccallable function myfunc(x::Float64)::Float64
return x^2
end
end
When it’s compiled using
julia +nightly juliac.jl --output-lib mylib.so --trim mylib.jl
generates mylib.so without the exported function myfunc. When we introduce the --compile-callable option
julia +nightly juliac.jl --output-lib mylib.so --trim --compile-ccallable mylib.jl
produces the mylib.so with the function myfunc included:
#> nm ./mylib.so | grep myfunc
000000000000de00 t jfptr_myfunc_21486
0000000000023ed0 t jlcapi_myfunc_21488
000000000001d0c0 t julia_myfunc_21485
0000000000023ed0 T myfunc