Библиотека liba определяет определенную функцию f. При написании программы на C, использующей функцию f, компиляция не завершится, если я не добавлю -lb к команде компиляции, даже если я не ссылаюсь на что-либо из libb непосредственно в моем C-коде. Однако, используя p / invoke, у меня нет опции связывания с библиотекой b, и когда я вызываю функцию f (после, конечно, [DllImport ("liba"]]) из моего кода C #, я получаю поиск символов ошибка: /usr/lib/liba.so: неопределенный символ: X (X определен в libb). ldd /usr/lib/liba.so не содержит строки, ссылающейся на libb. libb находится в / usr / lib. Я считаю, что этот вопрос по сути такой же, как Linux, Mono, общие библиотеки и неразрешенные символы , но в отличие от этого случая я не могу перекомпилировать liba. Есть ли способ решить эту проблему?