[node.js] node.js에서 DLL 불러오기(ffi 모듈) #1
- 코딩노트/node.js
- 2020. 5. 22. 23:54
※ 주의: 이 포스트는 실패과정을 작성한 포스트로,
이 이야기를 따라가다 보면 어떤 문제를 겪었고, 어떻게 해결했는지 알 수 있도록 작성하였다.
ffi 모듈을 설치하기 위한 단계를 포스트 중간중간 표시할테니, 참고하자.
이미 만들어져 있는 DLL을 node.js에서 불러와 쓰고 싶을 때 사용할 수 있는 FFI(Foreign Function Interface)라는 모듈이 있다.
커맨드 창을 띄우고 ffi 모듈을 설치하자.
아... 설치하려고 하자마자 오류가 나기 시작한다.
대충 파이썬이 필요한데 파이썬이 없다는 내용이다.
ffi 모듈을 설치하려면 파이썬과 VSBuild가 설치되어 있어야 한다.
파이썬과 VSBuild는 windows-build-tools라는 모듈을 설치하면 된다.
커맨드 창은 관리자 모드로 실행해야 설치가 가능하다는 것을 꼭 유의해야 한다.
커맨드 창을 관리자 모드로 실행하고 npm install -g windows-build-tools를 실행하자.
설치파일을 다운로드 받고 알아서 설치를 진행하는데, 느낌이 쎄하다.
파이썬은 금방 설치를 했는데 VSBuild 설치가 너무 오래걸린다.
10분째 기다려봐도 아무런 변화가 없다.
기다리다 지친 나는 Ctrl+C를 눌러 설치 작업을 취소한다.
우선 설치가 된 패키지가 있기에 npm uninstall -g windows-build-tools를 입력해 모듈을 삭제한다.
구글링해본 결과, 최근 버전을 설치하면 설치 시 무한대기에 빠진다고 한다.
그래서, 이전 버전을 설치해야 한다.
npm install -g windows-build-tools@4.0.0을 입력하면 이전 버전으로 설치를 수행한다.
3분?정도의 시간이 지나고 설치가 완료되었다.
이제 windows-build-tools의 설치가 완료되었으니 다시 ffi 모듈을 설치해보자
왜 이러니... 다시 설치 오류가 발생한다.
다시 구글링 시작... 현재 LTS 버전 중 가장 최신 버전인 12.16.3 버전의 node를 설치하면 빌드 에러가 발생한다고 한다.
그래서 이전 버전의 node.js를 다운받아 설치해야 한다.
https://nodejs.org/en/download/releases/
Previous Releases | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
node.js 12.13.0 버전부터 Erbium이라는 명칭을 갖고 있다.
Erbium 이전의 설치파일을 찾아야 한다.
아래로 조금 내려보면 Dubnium이라는 명칭을 가진 node.js 10.20.1 버전이 있음을 확인했다.
최종 배포일자가 2020년 4월 10일인 것을 보면 최근까지 버전 업데이트를 하고 있음을 알 수 있다.
node.js 10.20.1 버전을 다운받자.
다운받고 실행을 시켰더니 최신 버전이 이미 설치되어 있어 이전 버전을 설치할 수가 없다고 한다.
후.. node.js를 버전별로 관리하는 방법에 대해 찾아보았다.
이 이야기는 다음 포스팅에서 다루고 다시 ffi 모듈을 설치해야겠다.
https://licking-code.tistory.com/24
[node.js] node.js 개발환경 버전별 관리 방법
최신 node.js를 설치하고 ffi 모듈을 설치하다가, 이전 node.js를 설치할 필요가 생겼다. 그러나 그냥 설치파일을 다운받아 실행하면 최신 버전이 이미 설치가 되어있다는 이유로 설치가 되지 않는다
licking-code.tistory.com
'코딩노트 > node.js' 카테고리의 다른 글
[node.js] node.js에서 DLL 불러오기(ffi 모듈) #2 (0) | 2020.05.24 |
---|---|
[node.js] node.js 개발환경 버전별 관리 방법 (0) | 2020.05.23 |
[node.js] 데이터나 조건의 유효성을 검사해주는 assert 모듈 #2(equal, strictEqual 함수) (0) | 2020.05.08 |
[node.js] 데이터나 조건의 유효성을 검사해주는 assert 모듈 #1(assert 함수) (0) | 2020.05.07 |
[node.js] WebStorm으로 프로젝트 생성부터 hello world 출력까지 (0) | 2020.05.04 |
이 글을 공유하기