Каковы общие шаги для меня, чтобы перенести мой проект в 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
Я бы предложил также взглянуть на это -
существуют различные инструменты, которые помогут вам портировать в Mono - вы даже можете отлаживать в visual studio и упаковать его для развертывания в Linux.