posted by 타임슬립2 2020. 10. 25. 14:46

* 수정1(2022-01-16) : 2번째 실패 업데이트

* 수정2(2023-09-27) : 레트로아크 구동성공으로 링크.

 

 * 레트로아크 기종별 구동법 정리글 (PC98기종 NP2KAI 포함) : https://soulslip.tistory.com/361

 

 

=================== 아래는 예전 글 =========================

 

프로그램을 찾다 보면, GitHub에서 exe를 배포하지 않고 코드만 있는 경우가 있다. 이 경우 개발자가 exe를 만드는(컴파일,빌드) 방법을 적어 놓는다.

 

 근데 이걸 시도해 보았는데 보통 사람이 하는게 아닌 듯 하다. 무슨 한 단계를 넘어갈 때마다 에러가 뜨고 해결에 보통 시간이 날아가는 게 아니다.

 

NP2KAI라는 PC-98 에뮬레이터를 빌드 시도하다 실패과정을 기록한다.

- 주소 : github.com/AZO234/NP2kai

 

 

● 빌드 방법에 적혀있는것1 - libretro core (dll)

 글도 알아보기 힘들게 적혀있는데, Libretro(알고보니 레트로아크 인듯?)용 dll파일을 빌드하는 방법이 다음과 같다.

 

 ◐ MSYS2설치 + 기타 설치 + sdl폴더에 가서 make입력

 

  이 과정을 하기위해 수많은 단계가 필요한데,

 

 1. MSYS2라는걸 받아서 설치해야 한다. (윈도우에서 터미널로 열리는 프로그램. 리눅스명령어를 써야 함)

 2. 터미널(64bit) 실행해서 다음 과정을 모두 입력해야 함.

> pacman -Syu     : 업뎃프로그램 업데이트   (도중에 y누르고 한번 종료되면 재실행해서 똑같이 입력해야함)

> pacman -S base-devel   : make 명령어 등이 깔리는듯

> pacman -S gcc  : g++컴파일러 깔리는 듯

> pacman -S mingw-w64-x86_64-toolchain

> pacman -S git : 아래 vcpkg 등 코드 받을때 이게 필요.

> pacman -S cmake : MSys64/usr/bin 에 cmake.exe 가 설치됨

(추가) > pacman -S ninja : MSys64/usr/bin 에 ninja.exe 가 설치됨

 

msys64\mingw64\bin 와 msys64\usr/bin 경로를 윈도우 환경변수에 추가해야 한다.

 : 윈도우키 + Pausebreak 를 누르거나, 윈도우10은 '고급시스템설정' 검색 하면 나온다.

 

  (만약 make를 입력해서 파일이 없다 나오면, pacman -S make 로 개별 설치하는 방법이 있다)

 

 위 과정을 다 한 후 

> 'git clone https://github.com/AZO234/NP2kai': 해당 주소에서 코드들을 내려받는다. 다운로드 위치는 Msys2 설치폴더\home\<아이디>\ 에 받아지고, 터미널 상에서 'ls'(도스의 dir과 같은명령) 입력시 볼 수 있다.

 ★ 브라우저상에서 버튼눌러 다운로드 하면 안되고, git clone~으로 받아야 repository 정보가 같이 저장되서 진행가능케 된다.

> cd np2kai    (문자는 2개쯤 입력하고 탭키를 누르면 자동완성이 됨)

> cd sdl

> make    : 'Makefile'이란 파일을 이용해 빌드하는 명령어이다.

를 입력해야 하는데, 반드시 터미널은 Msys가 아닌 MinGW-64bit 터미널로 실행해야 된다.(문의하여 알아냄) 안그러면 유니코드 오류가 난다.

 

  => 이걸 다 하면 dll파일 하나가 생성된다. 이걸 레트로아크에 넣으면 쓸 수 있는것 같지만 난 필요없다. 헛고생 한 셈이다.

np2kai_libretro_dll.7z
0.82MB

빌드된 파일

 

 

● 빌드 방법에 적혀있는것2 (.exe) - Visual Studio

 아마도 Visual Studio 에서 빌드하라는 뜻인듯 한데, 과정이 장난이 아니다.

 

 Visual Studio 2019 설치 - 무료인 커뮤니티 버전 설치가능 (개발자는 수많은 모듈들을 설치하라고 적어놨는데...)

  => 실행후 도구 -> '도구 및 기능 가져오기'로 항목들을 설치할 수 있다. 설치하라고 하는걸 다 설치해야 한다.

 

 vcpkg 설치 

  => 이것도 exe가 없고 코드만 있어 직접 만들어야 하므로 골때린다.

   - 터미널 상에서 설치해야 하는데, 마찬가지로, 홈페이지 https://vcpkg.io/en/getting-started.html 에 나온대로,

'git clone https://github.com/Microsoft/vcpkg.git' 해서 코드 받고(필수), bootstrap-vcpkg.bat파일 실행하면 또 에러 : could not find msbuild version

  (msys터미널 상에서 실행하려면 './bootstrap-vcpkg.bat' 으로 입력해야 한다. 앞의 './'는 '현재 폴더'라는 의미다.

 

   - 검색결과 비주얼스튜디오에서 데스크톱 c++ 환경을 설치하라고 하는데 무려 15G나 잡아먹는다...설치하고 시도했는데 이번엔 'Building vcpkg.exe failed. Please ensure you have installed Visual Studio with the Desktop C++ ~' 에러가 난다 (분명히 설치했는데도)

 

  => 검색결과, 개발자가 써놓은 방법대로 하면 안되고, 윈도우의 cmd에서 vcpkg를 받은 경로로 이동 후  bootstrap-vcpkg.bat파일을 실행하면, 유니코드 경고는 뜨지만, 빌드가 되었다.

  (윈도우 cmd상에서 드라이브 이동은 예를들어  cd d:  이런식으로 입력하면 된다)

vcpkg(220116).7z
0.95MB

빌드된 파일(윈도우7 -> 수정됨 : 윈도우10에서)

그러나 코드까지 같이 있어야 아래 과정을 할 수있다.

 

윈도우10에서는 다음과같은 에러가 떠서 빌드가 안됐고 실행해도 어째선지 아무것도 안뜬다. 검색해보니 코드 업데이트를 기다려야 할듯. -> 2022-01-16 해결됨.

 

 vcpkg install 로 다음 패키지들 설치 : English Language Pack이 없다면서 에러를 뱉는다. 비주얼스튜디오 '도구 및 기능 가져오기'로 이번엔 '언어팩' ->'영어'를 설치해야 한다.

 

 패키지를 인터넷에서 받는게 아니고, vkpkg 코드의 하위폴더들에 있는 패키지를 설치(빌드)하는 거였다.

* SSL :  cmd 상에서 vcpkg.exe가 생성된 폴더로 이동 후, 'vcpkg install ssl' 을 입력하면 된다.

    => 'vcpkg install openssl' 입력 (위에서 git로 vcpkg 코드를 받는 과정 필수. 하위폴더에 openssl이 있어 이걸 쓰는 것이다. 시간 오래걸림)

* 마찬가지로 SDL2 설치

 - 'vcpkg install sdl2' 입력

 - 'vcpkg install sdl2-mixer' 입력  (np2kai개발자가 써놓은것과 달리 밑줄이 아니라 대쉬(-)였음. 하위폴더에 sdl2-mixer가 있다.)

 - 'vcpkg install sdl2-ttf' 입력

* libusb 설치 : 'vcpkg install libusb' 입력

 - (다설치후 ) 'vcpkg integrate install' 입력 : 설치된 패키지를 쓸수있게 된다함.

 

 

◐ Ninja 설치 : 컴파일 빠르게 해주는 툴이라 함 : 설치실패

 이것도 좀 골때린다. 버전업 되면서 설치방법이 변한듯.

 

-  msys터미널(루트=home 폴더)에서 'git clone github.com/ninja-build/ninja ' 입력해서 코드를 받는다.

- ninja폴더 (cd ninja) 에서 컴파일을 해야 하는데, 개발자가 써놓은 파이썬 파일을 이용한 방법은 오류를 뱉으며 되지 않았다 (분명 파이썬은 깔려 있다)

  그래서 cmake를 이용한 방법을 써야 한다 : 다음 두 단계를 거쳐야 한다.

 1. cmake -Bbuild-cmake -H.    : 빌드 준비 파일 생성
 2. cmake --build build-cmake  

  => sys/select.h 파일 없다며 에러

   => Ninja는 패스하기로 했다. 어차피 속도만 빠르게 해주는 것이기에.

 

  파이썬 깔리고, 환경변수에 추가되었다면, cmd에서 'pip install ninja' 를 하면, 파이썬\Scripts 폴더에 ninja.exe파일이 생긴다.

 (파이썬 설치후 경로설정은 https://soulslip.tistory.com/131 초반부 참조)

 

 

◐ 비주얼스튜디오에서 빌드

 - 열기 -> Cmake 에서 NP2Kai에 있는 CMakeLists.txt파일을 로드

  ㅁ 에러1 : 근데 이번엔 'Need Git Command~' 어쩌고 에러  : 다시 도구에 가서 'Git for Windows' 설치해야 함.

  ㅁ 에러2 : 설치하니 이번엔 'Not found vcpkg 에러가 뜸. vcpkg integrate install 을 입력한 후에도 같은 에러이고, 환경변수 경로에 vcpkg.exe를 넣어도 같은 에러다.

 

    => 환경변수에 VCPKG_ROOT를 추가하고, 거기에 vcpkg.exe 파일을 넣어놓아야 한다.

 

 ㅁ에러3 : 이번엔 Could Not find WDK 에러 (CmakeLists.txt 파일을 열때 발생하는 에러)

         분명 위 스샷에도 나와있듯 Windows SDK는 설치되어 있음에도.

 

 => 검색결과 다음 링크 docs.microsoft.com/ko-kr/windows-hardware/drivers/download-the-wdk 의 '2단계~'에 설치파일이 있으므로 다운로드 하여 실행하는데,

 

 이번엔 SDK를 못찾는다 나온다. 비주얼스튜디오에 깔렸는데???

 

 => 이번엔 developer.microsoft.com/ko-kr/windows/downloads/windows-10-sdk/ 페이지에 '설치관리자 다운로드'를 다운로드해서 먼저 설치해 본다. 2G대를 처먹는다.

   설치후 위의 WDK를 설치하면 설치가 된다.

 

 

 그러나 설치 후에도 위의 Cound NOT find WDK (missing: WDK_LATEST_NTDDK_FILE 오류가 나서 마땅한 방법을 찾지 못했다.

 

 (추가) 누군가 빌드 성공한 exe를 올려주면 좋겠다.

 

 

 2차 실패 - 비주얼스튜디오에서 빌드

 CMakelists.txt 를 불러온 후 여기서 막혔다. 비주얼스튜디오 이전버전에선 빌드시도는 됐었는데, 이젠 시도도 안된다.

 CMakelists 의 문법 문제로 추정된다.

 

▲ Ninja를 이용해 빌드하려해도 같은곳에서 에러가 난다. 문법해석 실패이다.

 

 => git.exe 가 있는 경로를 환경변수에 추가하면 되었으나, 이후로도 이러한 수많은 에러 (WDK경로, libusb경로)가 연속해서 떠서 진행이 불가하다 판단.

 

 개발자만 가능한 과정인 것 같다.

 

 

 

 

반응형