C#WinForm程序迁移到ubuntu有感

来源:互联网 发布:xd软件 编辑:程序博客网 时间:2024/06/05 09:41

最近完成了一个C#WinForm程序,使用多线程复原二进制数据,界面是WinForm的,迁移到ubuntu16.04 64位版,过程比较顺利。

首先需要在ubuntu上安装mono,这个可以参考mono的官网说明,将有关的软件库添加进去,安装mono就可以了。

安装完成后,可以在Windows的VS中编好待迁移的程序,在编译完成后,可以用moma进行分析,看看哪些函数不被支持。也可以在Windows上安装mono,然后用mono --debug参数运行程序,看命令行的输出就知道哪儿出问题了。

解决了代码调用的问题以后,还有就是程序路径分隔符的问题,windows上是用"\",linux上是用"/",这个要注意区分,可用条件编译解决。

编译完成后,就可以将程序拷贝到linux上运行了,可能运行的要慢一些,但是可以运行。我在window上,MS的运行时,耗时1分50秒,mono的运行时耗时8分6秒,在虚拟机上的ubuntu 16.04,mono运行时耗时12分多,可见方便移植是以性能牺牲为代价的,但是至少保证了程序的跨平台运行。

在Windows上安装的mono开发环境xamarin studio,新建一个GTK#程序就编译不成功,不知道为什么,还请有经验的大神解决。

在ubuntu 14.04上安装最新的mono和monodevelop是由一个共享库会冲突,monodevelop安装没有成功。建议从源码安装monodevelop。

原创粉丝点击