I am compiling Julia program as dll and trying to call from another program.
The Julia program is as follows (I am planning to use commented out pkg):
module pjname
# using Statistics
# using CSV
# using DataFrames
# using DSP
# # using Plots
# using Dates
# using FindPeaks1D
Base.@ccallable function function_name(slen::Cint)::Cint
println(1)
return 0
end
end # module
The program I am using to compile the code is:
using PackageCompiler
PackageCompiler.create_sysimage(; sysimage_path="./src/prog_dl.dll", script="./src/prog.jl")
and the program I call the dll is as follows:
using Libdl
libmg = dlopen("H:/julia/pjname3/src/prog_dl.dll")
function_name = dlsym(libmg, :func_name)
ccall(function_name, Cint, (Cint,), Int32(1))
I get the following error. Could someone help me to figure out this issue? I tried Julia version 1.6.5 and 1.7.0 but both of them didn't work. I am using windows and VS Code as IDE.
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks. Exception: EXCEPTION_ACCESS_VIOLATION at 0x0 -- unknown function (ip: 0000000000000000) in expression starting at none:1 unknown function (ip: 0000000000000000) function_name at H:\julia\pjname3\src\prog_dl.dll (unknown line) top-level scope at .\none:1 jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:871 jl_toplevel_eval at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:886 [inlined] jl_toplevel_eval_in at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:929 eval at .\boot.jl:360 [inlined] evaluate_foreigncall at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\interpret.jl:166 eval_rhs at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\interpret.jl:402 step_expr! at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\interpret.jl:556 step_expr! at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\interpret.jl:611 finish! at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\commands.jl:14 finish_and_return! at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\commands.jl:30 unknown function (ip: 0000000060da89d5) finish_stack! at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\commands.jl:60 unknown function (ip: 0000000060da8925) #debug_command#83 at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\commands.jl:474 debug_command at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\JuliaInterpreter\src\commands.jl:416 unknown function (ip: 0000000060dc8a09) jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1703 [inlined] jl_f__call_latest at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:714 #invokelatest#2 at .\essentials.jl:708 [inlined] invokelatest at .\essentials.jl:706 [inlined] our_debug_command at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\DebugAdapter\src\debugger_core.jl:67 startdebug at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\DebugAdapter\src\packagedef.jl:106 startdebugger at c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\packages\VSCodeDebugger\src\VSCodeDebugger.jl:39 unknown function (ip: 0000000060d6bca3) jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1703 [inlined] do_call at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:115 eval_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:204 eval_stmt_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:155 [inlined] eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:576 jl_interpret_toplevel_thunk at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:670 jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:877 jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:825
jl_toplevel_eval at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:886 [inlined] jl_toplevel_eval_in at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:929
eval at .\boot.jl:360 [inlined] include_string at .\loading.jl:1116 _include at .\loading.jl:1170 include at .\Base.jl:384 exec_options at .\client.jl:285
_start at .\client.jl:485 jfptr__start_46900.clone_1 at C:\Users\user_name\AppData\Local\Programs\Julia-1.6.5\lib\julia\sys.dll (unknown line) jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1703 [inlined] true_main at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:560 repl_entrypoint at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:702 mainCRTStartup at /cygdrive/c/buildbot/worker/package_win64/build/cli\loader_exe.c:51 BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line) RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line) Allocations: 14028713 (Pool: 14021110; Big: 7603); GC: 16 The terminal process "C:\Users\user_name\AppData\Local\Programs\Julia-1.6.5\bin\julia.exe '--color=yes', '--startup-file=no', '--history-file=no', '--project=h:\julia\pjname3', 'c:\Users\user_name.vscode\extensions\julialang.language-julia-1.5.8\scripts\debugger\run_debugger.jl', '\.\pipe\vsc-jl-dbg-7bbf4da0-9e5b-4d64-8fbb-db76fd01a2af', '\.\pipe\vsc-jl-cr-e192e8b6-1dd8-46c2-90a6-1074d122bd3c'" terminated with exit code: 1.