티스토리 뷰
최근에 Java + JNI를 Eclipse IDE 환경에서 안드로이드 + 임베디드 + 네트워크 통신을 만지게 된 적이 있었습니다. 왜 Eclipse냐고 하신다면, 저도 할말이 없습니다만, 어쨌든 C/C++ 코드를 사용하기 위한 JNI 환경을 구축하면서 시그윈을 사용하게 된 상황에 놓여 이 참에 정리하고자 포스팅을 하게 되었습니다.
정의
시그윈이 무엇일까요? 위키피디아에서는 다음과 같이 설명합니다.
시그윈(Cygwin; IPA: /ˈsɪgwɪn/)은 원래 시그너스 솔루션스가 개발한 자유 소프트웨어 모음집으로, 마이크로소프트 윈도에서 POSIX기반 소프트웨어를 구동 및 개발할 수 있는 환경을 제공한다. GNU GPL로 배포되어 자유롭게 사용할 수 있다.
런타임 라이브러리 ‘Cygwin1.dll’이 시그윈의 핵심이다. 유닉스에서 빈번히 사용되는 셸이나 명령 등을 윈도에서 소스 코드로부터 컴파일할 수 있도록 한 것으로, 유닉스용 기계어 이진 코드를 에뮬레이션한 것은 아니다.
즉 윈도우 운영체제에서 사용할 수 있는 일종의 리눅스 에뮬레이터라고 볼 수 있습니다. 개인적으로 위키피디아의 정의는 이해하기에 딱딱한 느낌이 있어서, 내위키의 정의를 살펴보았습니다. 내위키 : 시그윈
Cygwin. 원래는 시그너스 솔루션에서 만든 윈도우 운영체제용 리눅스 에뮬레이터. 지금은 레드햇이 인수해서 개발을 계속하고 있다. 홈페이지에서 무료로 다운로드 받을 수 있다. 윈도우 환경 안에서 GNU 유틸리티를 비롯한 각종 리눅스 프로그램을 쓸 수 있도록 이식한 소프트웨어 패키지다. 32비트와 64비트용이 있다. cygwin1.dll이라는 동적 라이브러리를 기반으로 기존의 윈도우 파일 시스템 위애 얹혀서 돌아간다. 따라서 윈도우 시스템 안에 있는 파일이나 디렉터리에 손쉽게 접근할 수 있는 게 장점이다.
설치
시그윈은 설치 방법도 굉장히 심플합니다. 시그윈을 설치하기 위해서는 다음 링크에서 본인에게 알맞는 아키텍처를 선택하여 installer를 설치하면 사용할 수 있습니다. 다운로드 받은 설치 파일을 실행하면 다음과 같이 시그윈 셋업이 활성화됩니다.
- Install from Internet : 인터넷을 이용하여 설치하며, 설치할 때 사용하는 패키지 파일을 다운받아서 저장한다.
- Download Without Installing : 설치 없이 다운로드만 진행
- Install from Local Directory : 미리 다운로드 받은 패키지 파일을 이용하여 설치한다. 이 옵션은 이미 디렉토리에 패키지가 존재할 때 사용할 수 있습니다.
일반적으로 Install form Internet 설정으로 진행합니다.
다음은 저장 경로를 지정하는 건데 설치 경로는 나중에 인터넷에서 찾을 때 편리성을 위하여 그대로 설치하는 것이 좋다고 개인적으로 생각하고 있습니다. 아래의 설정은 다중 사용자 환경의 컴퓨터에서 모든 사용자가 사용할 지, 현재 사용자가 사용할 지를 고르는 옵션이라고 볼 수 있습니다.
Cygwin을 통해 다운로드 받은 패키지를 저장하는 위치를 선택합니다. 제 경우, 폴더가 이리저리 흩어지는 것을 좋아하지 않기 때문에 시그윈 하위 디렉토리에 Packagae 디렉토리를 만들어 저장하기로 했습니다.
인터넷 연결 방식을 설정하는 것인데, 대부분의 경우 프록시를 사용하지 않으므로 Direct Connection을 고정하면 됩니다.
다운로드할 사이트를 선택하는데, 저는 귀찮아서 항상 다음 버튼을 누릅니다.
이후, 설정에 따른 다운로드를 진행한 후에
패키지 설치 창이 등장합니다. 굉장히 많은 패키지가 리스트에 있으며, 이 중에서 여러분들이 원하시는 패키지를 선택하시고 설치하시면 되겠습니다. 다른 분들이 포스팅한 옛 시그윈의 UI에 비해서 훨씬 간결하고 접근성이 높아졌다고 생각합니다. 따라서 별도의 조작에 대한 설명이 필요없을 정도로 사용법을 익힐 수 있다고 생각해서 패키지를 필터링하던가 정렬하는 것에 대해서 따로 적지는 않겠습니다.
위 캡처는 제가 Eclipse로 JNI 연동을 하기 위해서 설치했던 패키지들의 목록입니다. 이 패키지들은 아까 저희가 설정했던 Package 디렉토리에 위치하게 됩니다.
터미널
Cygwin을 설치하고 나면 Cygwin Terminal을 만나볼 수 있습니다. 시그윈 터미널에서는 제한되지만, 리눅스 명령어를 자유롭게 사용할 수 있습니다.
참고
Cygwin에서 패키지를 설치했다고 모든 패키지들이 곧바로 사용할 수 있는 것은 아닙니다. 예를 들어 gcc라던가 make 같은 패키지들을 설치하고 콘솔 창에서 사용하려고 해당 명령어를 입력하면 찾을 수 없다고 뜨는 경우가 있습니다. 이 경우 다음과 같이 환경 변수를 설정해 주어야 합니다.
내 PC 우클릭 > 속성 > 고급 시스템 설정 > 환경 변수 클릭
시스템 변수에서 Path 변수를 편집하여 ' 시그윈 설치경로\bin ' 추가
위의 "시그윈 설치경로"를 CYGWIN_HOME이라는 변수로 생성하고 설치경로를 지정하여, Path 변수를 ' %CYGWIN_HOME%\bin '으로 사용할 수도 있습니다.
위와 같이 설정하시면 다음과 같이 작동하는 것을 볼 수 있습니다.
또한, 다운받은 패키지 파일을 이용해서 Cygwin을 설치할 떄는 이 링크를 참조하시기 바랍니다.
레퍼런스
위키백과 : 시그윈
CIO : 윈도우-리눅스 간 오작교 '시그윈'
내위키 : 시그윈
시그윈 설치하기
다운받은 패키지 파일을 이용해서 Cygwin을 설치하자
'개발 > Miscellaneous' 카테고리의 다른 글
퍼포스 로컬 서버 구축하기(Perforce local Server) (0) | 2020.04.26 |
---|---|
리눅스마스터 2급 실기 정리 (15) | 2020.04.24 |
memset 사용시 주의할 점 (1) | 2020.03.04 |
YSE Sound Library (0) | 2019.11.29 |
DestroyWindow와 PostQuitMessage의 차이 (0) | 2019.11.26 |
- Total
- Today
- Yesterday
- Auto
- visual studio 핫 리로드
- 행렬
- 구간합
- 퍼포스 개요
- code copyright
- Perforce Stream
- 코드 저작권
- game hot reload
- C# lambda expression
- DXGI
- C++ Compile error
- C++
- Visual Studio C1083
- C7568
- C# 람다식
- C# 익명함수
- P4 Streams
- P4 Stream
- 언리얼 엔진
- 퍼포스 스트림
- MSVC C1083
- c++ hot reload
- visual studio hot reload
- 알고리즘
- c++ 핫 리로드
- GoogleTest
- UE4
- Perforce Streams
- 구글테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |