nodejs so파일

nodejs 2021. 9. 10. 14:55

출처 : https://github.com/node-ffi/node-ffi

디렉토리 생성

 

root@server:~/ffi-napi# node -v
v12.19.0

 

 

mkdir ffi-napi

cd ffi-napi

npm install ffi-napi

 

 

factorial.c

#include <stdio.h>


int factorial(int max) {
  int i = max;
  int result = 1;

  while (i >= 2) {
    result *= i--;
  }

  return result;
}

int main(void)
{
        printf("%d\n", factorial(6));
        return 0;
}

공유라이브러리 컴파일

gcc -shared -fpic factorial.c -o libfactorial.so

 

factorial.js

var ffi = require('ffi-napi');
var libfactorial = ffi.Library('./libfactorial', {
  'factorial': [ 'uint64', [ 'int' ] ]
})

if (process.argv.length < 3) {
  console.log('Arguments: ' + process.argv[0] + ' ' + process.argv[1] + ' <max>')
  process.exit()
}

var output = libfactorial.factorial(parseInt(process.argv[2]))

console.log('Your output: ' + output) 

 

실행 

root@server:~/ffi-napi# node factorial.js 3
Your output: 6
root@server:~/ffi-napi# node factorial.js 7
Your output: 5040

'nodejs' 카테고리의 다른 글

DISCORD bot 제작  (0) 2021.10.22
MongoError: Cannot use a session that has ended  (0) 2021.07.20
nodejs 버전 업데이트 하기  (0) 2021.07.15
nodemon 설정 방법  (0) 2020.12.09
axios 전송  (0) 2020.12.08
블로그 이미지

iesay

,