C# 프로그램을 Linux 환경에서 실행시키려면 .Net Core 또는 Mono를 사용해야됩니다.
하지만 제가 사용하려고하는 라이브러리는 Mono를 지원하지 않으므로 저는 .Net Core 방식을 알려드리겠습니다.
( 개발하시기전에 사용하려는 라이브러리의 지원환경들을 알아놓으면 중간에 고생할일이 없어집니다. )
1. Visual Studio 를 실행하여 .Net Core 템플릿으로 프로젝트를 생성해주세요.
2. Program.cs 의 소스코드를 아래와 같이 작성하고 빌드를 해주세요.
using System;
namespace Hello_MA
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, MA!");
}
}
}
3. 우리는3. 우리는 방금 Hello-MA 프로그램을 빌드했지만 윈도우에서 빌드를 하였기때문에
리눅스 환경으로 publish 해주어야됩니다.
윈도우에서 CMD를 키시고 아까만든 프로젝트의 csproj 파일이있는 경로로 이동해줍니다.
4. dotnet publish -r [빌드환경] 을 입력하시면 윈도우에서 할수있는 일은 끝났습니다.
Raspbian 을 사용하실경우 사진처럼 linux-arm 을 입력하시면됩니다.
5. 이제 라즈비안으로가서 Terminal 을 열어주시고 "uname -a" 과 "getconf LONG-BIT "를 순차적으로 입력해주세요.
사진처럼 우리가 사용하고있는 운영체제의 정보는 arm 에 32 비트입니다.
6. 이제 라즈비안에서 웹브라우저를 실행시켜주시고 자신의 운영체제 정보에 맞게 아래 링크를 접속해후 SDK를 다운받아주세요. 저는 32비트이니 ARM32 에 접속하겠습니다.
ARM32: https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.100-linux-arm32-binaries
ARM64: https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.100-linux-arm64-binaries
Download .NET Core 3.1 SDK (v3.1.100) - Linux ARM64 Binaries
Supported on Windows, Linux, and macOS Get Started
dotnet.microsoft.com
7. 다시 터미널을 열어주시고 6번에서 설치한 파일의 경로로 이동한뒤 아래의 명령어를 순차적으로 입력해주세요.
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-linux-arm.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
8. 이제 4번에서 빌드한 파일의 bin\Debug\netcoreapp3.1\linux-arm\publish 경로에서 publish 파일들을 라즈비안으로 옴겨줍니다.
저는 USB에 들어있기때문에 USB 채로 라즈베리파이에 연결해주었습니다.
cli 사용중이라면 www.raspberrypi-spy.co.uk/2014/05/how-to-mount-a-usb-flash-disk-on-the-raspberry-pi/ 를 참고하세요.
9. 다시 터미널을 열어주시고 옴겨준 파일의 경로로 이동해주세요.
10. 이제 터미널에 dotnet [빌드한 프로젝트이름].dll 을 입력하시면 우리가 만든 프로그램이 실행됩니다!
Console.WriteLine("Hello, MA!"); 뿐만아니라 Httpwebrequest 같은 함수들도 정상적으로 사용됩니다.
'운영체제 > Linux' 카테고리의 다른 글
하드링크와 심볼릭 링크 비교 (0) | 2024.01.23 |
---|---|
라즈비안에 도커와 도커 컴포즈 설치하기 (0) | 2021.07.02 |
라즈베리파이3 스크린 회전 (0) | 2020.03.03 |
라즈베리파이3 원격제어 & 한글 폰트 설치하기 (0) | 2020.03.03 |
Raspberry Pi 에 Raspbian OS 설치하기 ( GUI ) (0) | 2020.03.02 |