ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

Linux 下的 C# 开发



  • Linux 下的C#开发

    在2014年微软开源了C#, C#也被官方移植到了Linux平台。Microsoft 开始真正的 Love Linux 了。但是实际上早在官方移植之前,就已经有人实现了在Linux下的C#开发。而且由于已经有了很长世间的积淀,稳定性和软件库的完备性方面也要比官方的要好。这个项目就是Mono。这篇文章就是介绍Mono在Ubuntu下的具体安装和使用。

    Mono 的安装

    以下的例子都是以Ubuntu 14.04 为例, 你可能需要根据自己的系统进行调整。
    进入 Mono 官方的安装介绍页面
    按照网页中的指示,在终端中输入以下内容

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
    sudo apt-get update
    

    等待更新完成后输入

    sudo apt-get install mono-complete
    

    这样Mono环境就安装完成了, 如果你只需要一个C#的编译和运行环境,那么到这里就足够了。
    安装IDE
    mono提供了一个非常好的IDE开发环境。

    sudo apt-get install monodevelop
    

    IDE的使用

    当IDE安装完成之后再Ubuntu的Dash里面就可以打开IDE了,如下图所示。
    从Dash打开MonoDevelop

    打开IDE后界面如下,使用方法基本和Visual Studio 是一样的。
    alt text
    需要注意的是Windows下的dll和Linux下的dll是不通用的,如果直接在Linux下打开Windows的项目需要重新添加dll的依赖。甚至有时还要重新创建项目才能使用。不过用Mono Develop创建的项目Visual Studio 是可以正常打开的。

    下面以一个HelloWorld例子来展示基本的使用方法, 在File-> New Solution 里面创建新的Console Application。如下图所示

    0_1466409873661_Screenshot from 2016-06-20 15%3A57%3A17.png

    如果想要添加dll依赖可以右键点击Refererces, 然后点击edit
    0_1466410032847_Screenshot from 2016-06-20 15%3A58%3A34.png

    在弹出的对话框里面选择对应的dll

    如果想要添加NuGet软件包可以右键点击Packages, 然后选择Add

    0_1466410114167_Screenshot from 2016-06-20 15%3A58%3A22.png

    在弹出的对话框中选择你需要的软件包。

    项目编辑完成之后按F5就可以直接执行了
    0_1466410209534_Screenshot from 2016-06-20 15%3A59%3A01.png

    项目的编译

    在安装了Mono Develop的情况下,可以直接利用IDE进行编译。但是如果没有装IDE那么就需要以下的指令进行编译。

    首先需要用NuGet自动安装项目的依赖软件包。在项目的根目录下执行以下指令。在执行前确认你已经下载了NuGet.exe文件。如果没有下载可以在这里下载。如果执行过程中出现证书错误等等,这是由于mono的版本比较低的原因。按照以上方法安装的话应该是没有这个问题的。

    mono Nuget.exe restore
    

    然后执行以下指令进行编译

    xbuild /p:Configuration=“Debug POSIX”

    其中Debug POSIX是 编译的设置。如果想要编译Release版本的就可以写

    xbuild /p:Configuration="Release"
    

    运行效率

    我没有做过具体的Benchmark,但就自己的使用而言我觉得Linux下的C#并没有明显的效率下降,CPU和内存的使用率也并不高(相同程序的比较)。个人也非常推荐用C#进行跨平台开发。


Log in to reply