знает...
Как разруливать ситуации, когда в двух динамических сишных либах есть функции с одинаковыми именами?
В этом случае extern "C" функции, опубликованные для раста ведут себя как-то странно.
Допустим есть extern "C" функции ffoo и fbar, каждая из которых через хедер подключает функцию hello либ libfoo.so и libbar.so соответственно
Функция fbar может пойти в либу libfoo.so за функцией hello
руками поправить функции в одной из либ
Насколько помню зависит от того, в какой последовательности эти so-шки стоят в командной строке линкера. Кто первый того и тапки.
У раста с #[no_mangle] те же самые проблемы, так что только называть no mangled функции длинными или странными названиями, желательно ещё с именем либы в префиксе или постфиксе.
грузить либы динамически
objcopy -redefine-syms . еще КМК можно через linker script такое сделать тоже
Обсуждают сегодня