Взаимодействие с собственными библиотеками в Linux

Я пишу приложение на C #, которое является кроссплатформенным. Он использует DllImportдля нескольких разных библиотек. Это также и x32 и x64. Кажется, это работает правильно для моих собственных скомпилированных.dll/.so. Я поместил общие библиотеки x32 в папку x32 sub -, а общие библиотеки x64 — в папку sub -x64.

В окнах через.net framework я вызываю SetDllDirectory("x32" or "x64")в зависимости от текущего время выполнения. В моно, через Windows, Linux или Mac, я использую DllMapв RandomLibrary.dll.config. Он отлично работает с файлами, расположенными в каталогах x32 или x64.

Однако я также использую DllImportдля библиотек, которые не писал, таких как FreeType2. В Windows я просто помещаю встроенные библиотеки в две подпапки -. Однако в Linux я бы предпочел использовать библиотеку libfreetype6, которую вы можете установить через дружественный локальный менеджер пакетов. Я могу жестко закодировать ссылку DllMap на /usr/lib/x86_64-linux-gnu/libfreetype.so.6, но я предполагаю, что файл freetype будет меняться в зависимости от того, какой дистрибутив вы используете.

Есть ли простой способ найти libfreetype.so независимо от того, какой дистрибутив я использую?

7
задан Akash KC 10 August 2012 в 04:57
поделиться