I am using Julia to control a camera which comes with a shared library on Linux-Mint. The shared library provides APIs written in C++ . There are also header files containing definitions of types and constants concerning the device. I wrote Julia scripts to wrap C structs and types with Julia types. Here is the critical point. I use ccall function to call a function in the shared library . This function is supposed to return an opaque handle of the device. I use this format variant
ccall( (:function, "library"), ...). It failed to connect to the device. Then, I preload the shared library using
Libdl.dlopen and use
ccall(:function,..., ...) to call the function, but still got the same result. The same operation works perfectly fine in C.
I am wondering what could block connection to hardware devices. I do not know the details of
ccall implementation in Julia. If anybody can give me some clues, that would be great help.
Have a nice day.