У меня странная проблема, связанная с взаимодействием с общей библиотекой, и я получаю ошибки segfaults, когда пытаюсь использовать ccall
.Я переписал свой код на Python, но не получил никаких проблем.Это также происходит только тогда, когда GC.enable(true)
.Если я запускаю GC.enable(false)
до запуска какой-либо функции ccall
, все работает нормально.
Как ни странно, когда я запускаю следующее:
GC.enable(false)
var1 = Ref(...)
var2 = pointer(...)
ccall(...)
GC.enable(true)
, оно все равно вызывает ошибки.
У меня есть минимальный рабочий пример, размещенный в этой ссылке на GitHub здесь.Я надеюсь, что кто-то может взглянуть на это и сказать мне, что я делаю неправильно?
Кроме того, если кто-то может предложить предложения о том, как лучше всего использовать ccall в Julia при работе с разнымивиды шаблонов в C, это было бы чрезвычайно полезно.На данный момент большинство информации, которую я нашел, - это официальная документация, которая полезна, но не охватывает все шаблоны, которые я видел при взаимодействии с кодом C.