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, definitions, enums and types with Julia. 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"), ...). An error code saying no camera is found was thrown back. Then, I tried preloading 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 when using ccall. 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,
Sitthichat