2012-11-16 78 views
3

我想在我的Mono Mac項目中使用DLLImport爲了使用我自己的.dylib但我得到DllNotFoundException。我猜它與我的.dylib有關,因爲我可以使用現有的.dylib文件(如libmojoshader.dylib)來做到這一點。DllNotFoundException與DllImport在單聲道Mac上

以下是我使用的DllImport

[DllImport("libtestDylib.dylib")] 
static extern int libsum(int a, int b); 

我隨後致電libsum功能,以看看它是否工作。

我發現,通過與MONO_LOG_LEVEL終端運行的應用程序=「調試」 MONO_LOG_MASK =「DLL」單myGame.exe命令是一個偉大的方式,這樣的調試問題,但我不能讓我的應用程序.exe運行。我已經嘗試使用build文件夾中的.exe文件和.app/contents/MonoBundle文件夾中的.exe文件,我也嘗試在.app/contents/MacOs中運行文件,因爲這是在我發現的一些地方引用的研究。

最後一個文件拋出一個「文件不包含有效的CIL圖像。」和另外兩個「應用程序包中沒有Info.plist文件或Info.plist文件中沒有NSPrincipalClass」。

因此,我猜想第一步是設法通過終端運行應用程序,以便獲得適當的調試信息,爲什麼我的.dylib無法找到。

我製作的.dylib是一個在XNA4中製作的空的BSD C庫。

編輯

我甚至不能似乎得到現有dylibs現在的工作。

回答

0

我發現了這個問題,我用一個單獨的c#文件製作了一個新的Mono Mac項目,然後我通過終端編譯並使用debug命令運行它。終端反饋發現程序正在搜索.dylib的位置,並且我製作的lib是用錯誤的體系結構構建的,而這種體系結構只是通過爲32位系統構建而解決的。

相關問題