Есть ли какие-либо примеры компиляции кода C # с использованием Mono, чтобы exe-файл мог работать с поддержкой встроенного клиента Google?

#mono #google-nativeclient

#mono #google-nativeclient

Вопрос:

Я нашел пресс-релиз, в котором говорится, что Mono теперь поддерживает компиляцию для собственного клиента. Неясно, доступно ли это только из отдельной mono-вилки github или как часть стандартного дистрибутива.

Я создал раздвоенный дистрибутив mono, но мне не удалось найти никаких примеров того, как создать исполняемый файл собственного клиента, чтобы я мог запускать его в Chrome.

Кто-нибудь знает пример проекта или может привести пример того, как создать приложение Mono для NaCl?

Ответ №1:

Я думаю, что некоторые изменения, возможно, были расширены, но на сегодняшний день (16.11.11) определенно есть исправления, которые все еще находятся только в форке github ( https://github.com/elijahtaylor/mono / ). Чтобы создать mono для nacl, следуйте инструкциям в каталоге mono / nacl ( https://github.com/elijahtaylor/mono/tree/master/nacl ). Вам нужна среда выполнения mono, которая будет создавать mono, которая может быть встроена в ваш модуль nacl и может JIT-компилироваться.СЕТЕВЫЕ сборки. (Существует также компилятор mono AOT, который работает на linux / mac и генерирует модули nacl, но я почти уверен, что сейчас он не работает, поскольку его никто не использует и не тестирует).

Смотрите nacl/test/my.c и mono/mini/fsacheck.c для примеров того, как вызвать среду выполнения mono для JIT-кода из вашего модуля nacl. Внутри браузера вам придется придумать свой собственный способ (например, pepper и / или nacl-mounts), чтобы получить байт-код в ваш модуль nacl.

Комментарии:

1. Особой активности не было; изменения x86 были приняты вверх по течению, но не изменения ARM. По-прежнему должно быть возможно создать и использовать fork, но я ожидаю, что будет несколько проблем, которые нужно решить. Если вам интересно, вы можете попробовать, а затем задать более конкретные вопросы здесь или на native-client-discuss@googlegroups.com

Ответ №2:

Я не уверен, что он был передан в репозиторий Mono, но здесь есть форк, который работает на NaCl: https://github.com/elijahtaylor/mono Обратите внимание, используйте на свой страх и риск!

Ответ №3:

В этом сообщении от марта 2012 года указано, что Chrome 19 поддерживает встроенную поддержку Mono

Версии Mono для встроенного клиента теперь доступны для загрузки в SDK. Они компилируются с помощью glibc, а libmono поставляется в виде динамической библиотеки. Mono доступен только для pepper_19 и выше.

Обратите внимание, что вы должны синхронизировать свои пакеты pepper_X и naclmono_X (т. Е. Не обновлять один, не обновляя другой), иначе вы, вероятно, не сможете запустить результирующие встроенные nexes. Новые версии Mono, соответствующие данному SDK, должны быть доступны в течение нескольких часов после выпуска новой сборки SDK.

В настоящее время в Native Client поддерживается только встроенный Mono (http://www.mono-project.com/Embedding_Mono ).