2013-10-05 18 views
1

我有一個在Xamarin Studio中使用MonoMac的項目。我正在使用[DllImport ("rlimit")]來訪問.dylib文件。但是,即使我已將rlimit映射到rlimit.dylib,仍然會拋出DllNotFoundExceptionMonoGame無法找到dylib文件,拋出DllNotFoundException

.dylib文件在項目中,應該可以訪問,但無法找到它們。

我猜測這些文件要麼是在錯誤的地方,要麼是因某種原因沒有被檢測到。

回答

3

你需要把dylib放在任何地方mono找到它。

你可以找出單做這個查找本地庫:

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

和詳細查找輸出將被打印到終端。在我的系統中,mono首先在可執行文件的目錄中查找,因此將dylib放在最容易的位置。然後單聲道要求系統找到dylib(通過試圖打開它沒有路徑)。系統通常在/ usr/lib中查找,也許還有其他一些地方(這當然是依賴於系統的),但無論如何,您都可以通過將LD_LIBRARY_PATH設置爲該路徑來爲系統添加路徑。在這種情況下,你會做到這一點:

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

請注意,您不需要.dllmap,單就可以自動補齊此時,相應的後綴,根據不同的平臺上的Mac(名爲.dylib,。所以在Linux和.dll在Windows上)。