2011-10-27 16 views
8

Znalazłem informację prasową, która stwierdza, że ​​Mono obsługuje teraz kompilację dla natywnego klienta. Nie jest jasne, czy jest to dostępne tylko z oddzielnego widelca mono github lub jako część standardowej dystrybucji.Czy są jakieś przykłady kompilowania kodu C# za pomocą Mono, aby exe mógł działać z natywnym wsparciem klienta Google?

Zbudowałem rozwidloną dystrybucję mono, ale nie udało mi się znaleźć żadnych przykładów, jak zbudować plik wykonywalny natywnego klienta, aby móc go uruchomić w przeglądarce Chrome.

Czy ktoś zna przykładowy projekt, czy może podać przykład, jak zbudować aplikację Mono dla NaCl?

Odpowiedz

4

Myślę, że niektóre z tych zmian mogły zostać wprowadzone w górę, ale na dzień dzisiejszy (11/11/11) są zdecydowanie poprawione błędy, które nadal występują tylko w widłach github (https://github.com/elijahtaylor/mono/). Aby zbudować mono dla nacl, postępuj zgodnie z instrukcjami w katalogu mono/nacl (https://github.com/elijahtaylor/mono/tree/master/nacl). Potrzebujesz mono-runtime, który zbuduje mono, który może być osadzony w twoim module nacl i może kompilować zespoły .NET kompilujące JIT. (Istnieje również kompilator mono AOT, który działa na linux/mac i generuje moduły nacl, ale jestem prawie pewien, że teraz nie działa, ponieważ nikt go nie używa ani nie testuje).

Zobacz przykłady: nacl/test/my.c i mono/mini/fsacheck.c, aby dowiedzieć się, jak wywołać mono z pliku JIT z modułu nacl. Wewnątrz przeglądarki musisz wymyślić własną drogę (np. Pieprz i/lub nacl-mounts), aby uzyskać kod bytcode w swoim module nacl.

+0

Czy są jakieś aktualizacje dotyczące tej sytuacji? –

+0

Nie było dużo aktywności; zmiany w x86 zostały wprowadzone w górę strumienia, ale nie zmiany ARM. Nadal powinno być możliwe budowanie i używanie widelca, ale spodziewałbym się, że będzie kilka kwestii do rozwiązania. Jeśli jesteś zainteresowany, możesz spróbować, a następnie zadać bardziej szczegółowe pytania tutaj lub na [email protected] – Derek

3

This post od marca 2012 roku wskazuje, że Chrome 19 posiada natywną obsługę klienta dla Embedded Mono

wersjach mono dla Native Client są teraz dostępne do pobrania w SDK. Są one skompilowane z glibc, a libmono jest biblioteką dynamiczną . Tylko pepper_19 i wyżej mają Mono dostępny.

Należy pamiętać, że trzeba zachować pepper_X i naclmono_X wiązek zsynchronizowane (czyli nie aktualizuje jeden bez aktualizowania drugiej) lub będzie prawdopodobnie być w stanie uruchomić wynikających zbudowane Nexes. Nowe wersje Mono, że pasują do danego pakietu SDK, powinny być dostępne w ciągu kilku godzin od udostępnienia nowej wersji zestawu SDK .

Tylko wbudowany Mono jest obsługiwany przez klienta natywnego obecnie (http://www.mono-project.com/Embedding_Mono).