1

Xamarin Studio で MonoMac を使用するプロジェクトがあります。[DllImport ("rlimit")].dylib ファイルにアクセスするために使用しています。rlimitただし、 にマップしたにもかかわらずrlimit.dylib、 aDllNotFoundExceptionがまだスローされます。

.dylib ファイルはプロジェクト内にあり、アクセスできるはずですが、見つかりません。

ファイルが間違った場所にあるか、何らかの理由で検出されていないと推測しています。

4

1 に答える 1

3

mono が見つけられる場所に dylib を配置する必要があります。

これを行うことで、mono がネイティブ ライブラリを探す場所を見つけることができます。

export MONO_LOG_LEVEL=debug
export MONO_LOG_MASK=dll
mono yourprogram.exe

詳細なルックアップ出力が端末に出力されます。私のシステムでは、mono は最初に実行可能ファイルがあるディレクトリを検索するので、そこに dylib を配置するのがおそらく最も簡単です。次に mono はシステムに dylib を見つけるように要求します (パスなしでそれを開こうとすることによって)。通常、システムは /usr/lib とおそらく他のいくつかの場所 (これはもちろんシステムに依存します) を検索しますが、いずれにしても、LD_LIBRARY_PATH をそのパスに設定することで、システムが検索するパスを追加できます。この場合、次のようにします。

export LD_LIBRARY_PATH=/path/to/dylib:$LD_LIBRARY_PATH
mono yourprogram.exe

.dllmap は必要ないことに注意してください。mono は、プラットフォームに応じて適切なサフィックスを自動的に追加します (Mac では .dylib、Linux では .so、Windows では .dll)。

于 2013-10-07T09:29:02.670 に答える