개요
Linux 에서 C# 언어를 사용하여 GUI 를 작성하고자 합니다.
이를 위하여 Mono 를 설치하여보았습니다. Mono 는 Microsoft 에서 지원받고 있는 Microsoft 사의 .NET 프레임워크를 C#을 위한 ECMA 표준기반으로 구현하는 오픈소스 프로젝트입니다.
이를 통하여 크로스플랫폼(Windows, Linux, MAC) 어플리케이션을 개발할 수 있습니다.
설치절차
저장소 추가
현재 우분투 16.04 버전을 사용하기 때문에 아래의 내용을 우분투 터미널에 입력하여 Mono 저장소를 시스템에 추가합니다. 그 외의 버전은 모노 페이지의 내용을 참고하여 설치합니다.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$ sudo apt install apt-transport-https
$ echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
$ sudo apt update
Mono 설치
다음의 명령을 터미널에 입력합니다.
$ sudo apt install mono-devel
Mono 설치 확인
Hello World 프로그램을 출력해봄으로써 Mono 가 잘 설치되었는지 확인할 수 있습니다.
Hello World @ Console
hello.cs 파일을 생성한 후, 아래의 코드를 복사하여 기본적인 기능을 확인해 볼 수 있습니다.
using System;
public class HelloWorld
{
static public void Main ()
{
Console.WriteLine ("Hello Mono World");
}
}
컴파일을 위해서 csc 를 사용합니다.
$ csc hello.cs
컴파일 결과 “hello.exe” 파일이 생성되며, 다음의 명령어를 사용하여 실행합니다.
$ mono hello.exe
프로그램이 실행되면 화면에 다음의 내용이 출력될 것입니다.
Hello Mono World
Hello World @ WinForms
아래의 프로그램을 사용하여 Windows Form 프로그램을 시험해볼 수 있습니다.
using System;
using System.Windows.Forms;
public class HelloWorld : Form
{
static public void Main ()
{
Application.Run (new HelloWorld ());
}
public HelloWorld ()
{
Text = "Hello Mono World";
}
}
컴파일을 위해서는 csc 를 사용하고 이때, -r 옵션으로 WinForm 라이브러리를 추가하도록 합니다.
$ csc hello.cs -r:System.Windows.Forms.dll
컴파일 결과 “hello.exe” 파일이 생성되며, 다음의 명령어를 사용하여 실행합니다.
$ mono hello.exe
Hello World @ Gtk#
다음의 소스코드를 사용하여 Gtk# 응용프로그램을 시험해 볼 수 있습니다.
using Gtk;
using System;
class Hello
{
static void Main ()
{
Application.Init ();
Window window = new Window ("Hello Mono World");
window.Show ();
Application.Run ();
}
}
사전에 아래의 명령어를 사용하여, Gtk# 을 설치합니다.
$ sudo apt-get install gtk-sharp2
컴파일을 위해서 mcs 를 사용하며 -pkg 옵션을 사용하여 Gtk# 라이브러리를 사용 포함하도록 합니다.
$ mcs hello.cs -pkg:gtk-sharp-2.0
컴파일 결과 “hello.exe” 파일이 생성되며, 다음의 명령어를 사용하여 실행합니다.
$ mono hello.exe
'모듈, 프레임웍' 카테고리의 다른 글
[Quasar] TimePicker 한글 사용하기 (패키지 패치) (0) | 2021.12.10 |
---|---|
[nodejs] 패키지 설치 오류들 (2) | 2021.06.26 |