본문 바로가기

프로그래밍/SWIFT

Swift on WSL swift repl 에 진입할 때 행이 걸리는 문제.

반응형

윈도우 시스템에 wsl 을 설치하고, ubuntu 를 설치했다.  (2022년 7월 15일)

여기에서 swift 연습을 해보기 위해서 swift 설치과정을 진행해서 설치가 되었는데 ( apt 명령으로 디펜던시 패키지들을 설치하고, swift ubuntu 20.04 용 릴리즈 tar 파일을 받아서 풀고, PATH 변수 설정해주기까지 ) swift 명령이 어떤 건 행이 걸려서 동작을 안했다.

1. swift 명령만 실행하여 repl 에 들어가려 하면 멈춘다.

$ swift
Swift version 5.6.2 (swift-5.6.2-RELEASE)
Target: x86_64-unknown-linux-gnu


Welcome to Swift!


Subcommands:


  swift build      Build Swift packages
  swift package    Create and work on packages
  swift run        Run a program from a package
  swift test       Run package tests
  swift repl       Experiment with Swift code interactively (default)


  Use `swift --help` for descriptions of available options and flags.


  Use `swift help <subcommand>` for more information about a subcommand.

여기까지 화면이 나오고 입력프롬프트는 나오지 않는다. ubuntu 터미널을 꺼야만 한다. StackOverflow 에서 좀 옛날버전에 대한 동일한 증상을 찾았다. ( https://stackoverflow.com/questions/55885759/swift-repl-not-working-in-windows-subsystem-for-linux )

2. swift --version : swift 버전이 잘 출력된다.

3. swift package init : 스위프트 패키지 프로젝트 구조 잘 생성한다.

4. swift run : 기본으로 생성된 hello world 프로젝트인데 Illegal instruction (core dumped) 라는 메시지가 나오며 죽는다.

5. swift test.swift : 파일 하나짜리 간단한 스위프트 스크립트는 잘 실행한다. ( 단일파일 스크립트를 만들어 명령행에서 swift 실행이 가능하다. )

6. swiftc test.swift : 파일 하나짜리 간단한 스위프트 스크립트 컴파일 잘 성공한다. ( gcc 와 같이 명령행에서 실행파일 컴파일이 가능하다. )

 

결국 문제를 찾았는데, 설치한 ubuntu 가 wsl1 이었던 것이 문제였다. wsl 설치가 미숙하여, wsl2 로 설치했다고 생각했는데, wsl1 으로 설치되었었다. 파워쉘(파워셸)에서 설치된 ubunt 의 버전을 2 로 바꾸고 ( wsl set-version ) 나서 위 문제들이 해결됐다.

728x90