有没有办法检查系统是否可以找到交流库?
我试图在库调用上使用try catch块来测试它是否存在,但这实际上会杀死程序.
try
ccall( (:func, "libfoo"), Bool, () )
catch
println("This line is never called. Ever")
end
Run Code Online (Sandbox Code Playgroud)
相关的错误是:
ERROR: error compiling anonymous: could not load module libfoo: libfoo: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
你可以在跳跃之前看一下find_library:
julia> find_library(["libc"])
"libc"
julia> find_library(["libfoo"])
""
Run Code Online (Sandbox Code Playgroud)
如果找不到,你将获得空字符串.
julia> help(find_library)
INFO: Loading help data...
Base.find_library(names, locations)
Searches for the first library in "names" in the paths in the
"locations" list, "DL_LOAD_PATH", or system library paths (in
that order) which can successfully be dlopen'd. On success, the
return value will be one of the names (potentially prefixed by one
of the paths in locations). This string can be assigned to a
"global const" and used as the library name in future
"ccall"'s. On failure, it returns the empty string.
Run Code Online (Sandbox Code Playgroud)