Navigation

    蓝鲸ROS机器人论坛

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

    Linux 下的 C# 开发

    技术交流
    1
    1
    3594
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • weijiz
      weijiz last edited by weijiz

      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#进行跨平台开发。

      1 Reply Last reply Reply Quote 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community