Каковы общие шаги для меня, чтобы перенести мой проект в mono?

У меня есть dll. и источник visual C++ для него. (моя dll - это Visual c++ wraper вокруг некоторых ffmpeg av* libs-других предварительно скомпилированных dll), а в том же решении (.sln) у меня есть проект C#, который использует мою dll.

каковы общие шаги для меня, чтобы перенести мой проект в mono?

3 ответов


скомпилируйте проект в Visual Studio, но Включите следующие параметры компилятора:

  • /clr: pure: это сделает чистую сборку CLR (без каких-либо x86/x86-64 asm), которая должна работать на mono, если вы не используете некоторые вызовы среды выполнения C (CRT).
  • / clr: safe: то же самое, что и pure, но у вас не может быть ссылок CRT, поэтому ваш проект может не компилироваться. Если это не так, замените эти вызовы функций другими портативными вызовами.

результирующая сборка должен быть чистый CLR и будет работать с Mono.

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


Mono не поддерживает сборки смешанного режима в операционных системах, отличных от Windows.

удалите оболочку C++ и перепишите приложение, чтобы использовать только P/Invoke для вызова собственного кода.

см. также:www.mono-project.com/CPlusPlus


Я бы предложил также взглянуть на это -

http://mono-tools.com/store/

существуют различные инструменты, которые помогут вам портировать в Mono - вы даже можете отлаживать в visual studio и упаковать его для развертывания в Linux.