将项目移植到mono的一般步骤是什么?

时间:2010-08-19 19:12:07

标签: c# c++ visual-c++ dll mono

我有一个dll。和Visual C ++的源代码。 (我的dll是围绕一些ffmpeg av * libs的视觉c ++包装器 - 另一个预编译的dll)而在同一个解决方案(.sln)中我有C#项目使用我的dll。

将项目移植到mono的一般步骤是什么?

3 个答案:

答案 0 :(得分:4)

Mono不支持非Windows操作系统上的混合模式程序集。

删除您的C ++包装器并重写您的应用程序,仅使用P / Invoke调用本机代码。

另请参阅:www.mono-project.com/CPlusPlus

答案 1 :(得分:3)

在Visual Studio中编译项目,但启用以下编译器选项:

  • / clr:pure:这将生成一个纯CLR程序集(没有任何x86 / x86-64 asm),它应该在mono上运行,除非你使用一些C运行时调用(CRT)。
  • / clr:safe:和pure一样,但是你不能拥有CRT引用,所以你的项目可能无法编译。如果没有,请将这些功能调用替换为其他便携式呼叫。

生成的程序集应该是纯CLR,并且可以与Mono一起使用。

This页面包含编译适用于Mono的版本时可能遇到的所有内容。

答案 2 :(得分:-2)

我建议也看看这个 -

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

有多种工具可以帮助您移植到Mono - 您甚至可以在visual studio中进行调试并将其打包以便在Linux上进行部署。