クロスプラットフォームであるC#でアプリケーションを作成しています。DllImport
いくつかの異なるライブラリに使用します。また、x32とx64の両方です。自分でコンパイルした.dll/.soで正しく動作するようです。x32共有ライブラリをx32サブフォルダーに配置し、x64共有ライブラリをx64サブフォルダーに配置しました。
.net Frameworkを介したWindowsSetDllDirectory("x32" or "x64")
では、現在のランタイムに応じて呼び出します。モノラルでは、Windows、Linux、またはMacのいずれかを使用してDllMap
、RandomLibrary.dll.configでを使用します。x32またはx64ディレクトリにあるファイルに対しては正常に機能します。
ただし、DllImport
FreeType2など、自分が作成していないライブラリにも使用します。Windowsでは、ビルドされたライブラリを2つのサブフォルダに押し込みました。ただし、Linuxでは、使いやすいローカルパッケージマネージャーを介してインストールできるlibfreetype6ライブラリを使用したいと思います。DllMapリンクを/usr/lib/x86_64-linux-gnu/libfreetype
.so.6にハードコーディングできますが、使用するディストリビューションに応じてfreetypeファイルが変わると思います。
使用しているディストリビューションに関係なく、libfreetype.soを見つける簡単な方法はありますか?