2014-05-19 107 views
1

我想將embed單聲道轉換成64位Mac OSX應用程序(從Windows C++移植到一切正常)。由於只有32位Mono可用於Mac OSX預編譯,所以我設法構建了自己的64位Mono版本following this manualMac上的Mono 64位。缺少4.5

當了XCode調試我的64位應用程序的單嵌入初始化失敗, 稱「大會mscorlib.dll中未找到或無法加載。 應該已經安裝在`USR/local/lib目錄/單聲道/4.5'目錄。「

我可以進入產生此錯誤的代碼(domain.c - mono_init_internal())。不幸的是,我的mono版本顯然沒有生成4.5目錄。唯一可用的「.NET版本」似乎爲2.0:存在usr/local/lib/mono/2.0/mscorlib.dll,但完全沒有4.5子目錄。

有什麼我忘記在構建?

非常感謝您的支持。

回答

0

另一種解決方案是採用Mono 32位分發,構建64位二進制文​​件(不含MCS),然後合併結果。

這是this project的工作方式,以提供通用的二進制文件。您可以調整它以替換二進制文件而不是合併它們。

+0

非常感謝您的回答。不幸的是,我對於兩者都很陌生,單聲道嵌入和Mac編程(或者太無知......)瞭解如何遵循您的建議。你能否在 –

+0

中解釋一下,非常感謝你的回答。不幸的是,我對於兩者都很陌生,單聲道嵌入和Mac編程(或者太無知......)瞭解如何遵循您的建議。你能否詳細解釋我應該採取的步驟。我已經在機器上安裝了32位發行版和我自制的64 Mono。謝謝! –

0

找到它。我的問題的答案是「我在建造中忘了什麼?」是是的!顯然,默認情況下,./configure;使;編譯所有可用的.NET平臺(2.0,3.5。,4.0,4.5)。構建完成後,您可以在{UnpackedTarBall}/mcs/class/lib下找到它們 - 有net_2_0,net_3_5,net_4_0和net_4_5子目錄。 不幸的是,「make install」只安裝.Net 2.0,正如我原來的帖子所述。 我管理由以下順序安裝其它簡檔:

$ cd {UnpackedTarBall}/mcs 
$ make PROFILE=net_4_5 install 

重複和替換以上針對其他型材(net_3_5,net_4_0)。 {UnpackedTarBall}/mcs/README中有一些有用的提示。

+0

我不確定這是否正確。至少在Linux上,'make'和'make install'命令安裝所有版本。我的問題是,有一個丟失的文件,導致安裝2.0版後「make install」失敗,這意味着沒有安裝其他版本。請參閱有關3.4版本遇到此問題的信息,請參閱http://stackoverflow.com/questions/22285830/linux-mono-installation-and-errors/23904603 – natli

相關問題