Mono Class как общая библиотека? - PullRequest
1 голос
/ 13 апреля 2011

.Net класс может быть скомпилирован в общую библиотеку (.dll). Можно ли скомпилировать моно класс в общую библиотеку в linux (.so)? как?

1 Ответ

4 голосов
/ 13 апреля 2011

.Net .dll файлы не являются реальными , то есть native , общими библиотеками.По умолчанию Mono также создает и использует файлы .dll, используя тот же формат сборки, что и Microsoft .Net.Обе среды выполнения генерируют собственный код из этого промежуточного формата во время выполнения.

Однако можно выполнить компиляцию Ahead-Of-Time (AOT) и сохранить полученный файл .so на диск (Microsoft .Net эквивалентноэто генерация и кэш ngen.exe).Когда вы вызываете Mono с флагом --aot, он сохраняет собственный код в виде библиотеки .so и использует его всякий раз, когда тот же файл загружается снова.Возможно, вы также захотите добавить флаг -O=all, чтобы включить все оптимизации (некоторые из них по умолчанию отключены, поскольку их выполнение сопряжено с большими затратами).

Однако имейте в виду, что кэшированная нативная библиотека, вероятно, выигралане может использоваться для ссылок на нативные программы.

...