Поскольку Raspberry Pi способен работать с полным дистрибутивом Linux, его потенциал как инструмента разработки огромен. Pi не только поддерживает основные компилируемые языки, такие как C, C++ и Java, но также поддерживает популярные языки сценариев, такие как Python, Perl и Луа . Pi также может использовать некоторые менее известные (но столь же мощные) компилируемые языки, такие как Язык Go от Google и C#. Использовать последний на Raspberry Pi очень просто благодаря проекту Mono с открытым исходным кодом.
Mono — это набор инструментов (включая компилятор C# и среду Common Language Runtime), используемый для создания программ, совместимых с «.NET», на основе опубликованных стандартов ECMA. По сути, он позволяет компилировать и запускать код C# в Linux, а полученные двоичные файлы полностью совместимы с Microsoft.NET.
Чтобы установить Mono на Raspberry, используйте:
sudo apt-get install mono-complete
Следующим шагом будет компиляция стандартной программы «Hello World». Создайте файл с именем «hello.cs» в своем любимом текстовом редакторе. Чтобы создать его с помощью nano, введите:
nano hello.cs
Вырежьте и вставьте следующий код:
using System; public class HelloWorld { static public void Main () { Console.WriteLine ("Hello Make Tech Easier"); } }
C# — объектно-ориентированный язык, что означает, что все определяется внутри класса. Приведенный выше код создает класс под названием «HelloWorld» и определяет внутри него функцию под названием «Main». Функция Main() всегда является отправной точкой для программ на C#. «Console.WriteLine» выводит текст на терминал (консоль).
Чтобы скомпилировать программу, введите:
mcs hello.cs
В текущем каталоге будет создан файл с именем «hello.exe». Обычно в Linux двоичные файлы не используют расширение «.exe», оно исходит из DOS и Windows. Если вы проверите тип файла «hello.exe», вы увидите, что на самом деле это исполняемый файл Intel:
file hello.exe
Вывод показывает, что «hello.exe» — это сборка Mono/.Net, созданная для работы на ПК с Windows с использованием процессора Intel. Но мы скомпилировали его в Linux, используя процессор ARM!
Это связано с тем, что.NET фактически использует промежуточный язык, который интерпретируется средой Common Language Runtime. Начало файла.exe представляет собой реальный код Intel/Windows, который автоматически запускает среду выполнения и позволяет запускать остальную часть программы (в качестве промежуточного кода).
Официальный способ запустить программу на Raspberry — использовать команду «mono»:
mono hello.exe
И, как и следовало ожидать, в терминале появится сообщение «Hello Make Tech Easier». Поскольку выходные данные Mono двоично совместимы с Windows, вы можете скопировать файл hello.exe на ПК с Windows и запустить его напрямую.
Также можно писать программы с графическим интерфейсом, используя GTK. Но сначала вам нужно установить привязки между Mono и GTK:
sudo apt-get install gtk-sharp2
Создайте файл с именем «hellogtk.cs» со следующим кодом:
using Gtk; using System; class Hello { static void Main() { Application.Init (); Window window = new Window ("Hello MTE"); window.Show(); Application.Run (); } }
Это очень, очень простая программа GTK, которая открывает новое окно. Чтобы скомпилировать его, введите:
mcs hellogtk.cs -pkg:gtk-sharp-2.0
Флаг «pkg» сообщает Mono, что этой программе необходимо использовать набор инструментов GTK. Чтобы запустить «hellogtk.exe», вам необходимо убедиться, что на вашем Pi работает рабочий стол. Запустите двоичный файл из файлового менеджера или из терминала, запущенного с рабочего стола.
Откроется небольшое окно с заголовком «Привет, MTE». Приложение больше ничего не делает, но показывает, что вы можете писать программы с графическим интерфейсом на своем Pi, используя C#.
У Mono есть родственный кроссплатформенный проект IDE, известный как MonoDevelop. Эти проекты позволяют легко писать настольные и веб-приложения ASP.NET для Linux, Windows и Mac OSX. Он также доступен на Raspberry Pi. Чтобы установить его, введите в терминале следующее:
sudo apt-get install monodevelop
Если вы застряли в Mono, в страница поддержки проекта есть ссылки на форумы, списки рассылки, а также ответы на часто задаваемые вопросы. MonoDevelop также имеет подробные страницы документация и Часто задаваемые вопросы .