Estoy usando a Julia para controlar una cámara que viene con una biblioteca compartida en Linux-Mint. La biblioteca compartida proporciona API escritas en C++. También hay archivos de encabezado que contienen definiciones de tipos y constantes relacionadas con el dispositivo. Escribí scripts de Julia para envolver estructuras C, definiciones, enumeraciones y tipos con Julia. Aquí está el punto crítico. Uso la función ccall para llamar a una función en la biblioteca compartida. Se supone que esta función devuelve un identificador opaco del dispositivo. Utilizo esta variante de formato ccall( (:function, "library"), ...) . Se devolvió un código de error que decía que no se encontró ninguna cámara . Luego, intenté precargar la biblioteca compartida usando Libdl.dlopen y ccall(:function,..., ...) para llamar a la función, pero obtuve el mismo resultado. La misma operación funciona perfectamente bien en C.
Me pregunto qué podría bloquear la conexión a dispositivos de hardware al usar ccall . No conozco los detalles de la implementación de ccall en Julia. Si alguien me puede dar alguna pista, sería de gran ayuda.
Que tenga un lindo día,
Sitthichat