2012-06-22 4 views
0

JavaScript의 마법 세계에 C++ 클래스 (공유 라이브러리로 묶음)를 노출해야합니다.C++ 객체를 JavaScript (PowerPC)에 노출시키기위한 v8의 대체 코드

가장 확실한 해결책은 Node.js/v8을 사용하는 것입니다. 문제는 PowerPC에서 실행되어야한다는 것입니다. (이것에 대한 의견은 없습니다 ...) - 아아! - PowerPC에서 v8이 실행되지 않습니다 (v8-powerpc 프로젝트가 종료 된 것 같습니다).

내가 다른 가능한 솔루션이 순간에 몇 가지 가능성이있다,이 있는지 이해하려고 노력 해요 :

자바 스크립트로 LLVM의 비트 코드를 변환
  1. emscripten; 나는 그것이 작동 잘 모르겠어요하지만
  2. 웹킷의 JavaScriptCore, 나는 자바 스크립트 전문가가 아니라 그리고 난 사실은 꽤 잃은 느낌, 그래서이 내입니다

를 (I 어쨌든 파워에 웹킷을해야합니다) 질문 :

  1. emscripten은 유효한 해결책입니까? (혹시 사용 해본 적이 있습니까?)
  2. JavaScriptCore를 사용하여 C++을 JavaScript에 노출하는 방법에 대한 문서는 누구에게도 알려 줄 수 있습니까?
  3. 다른 옵션이 있습니까? 그리고 어느 옵션을 선택합니까?

많은 감사,

Rippel

+0

명확성을 위해 C++ 라이브러리를 사용하는 JavaScript 애플리케이션 (JS 엔진에서 실행)을 작성하는 것이 목적입니다. – rippeltippel

답변

0

당신은 Emscripten를 사용할 수 있습니다. 그리고 나는 그것을 사용하고 그것을 사용하고 있습니다. 문제는 다음과 같습니다 :/

  • JS/C 커뮤니티는 IMO 가지 의심스러운 약 Emscripten 그래서 당신이 많은지지를 얻지 못할 수도 다릅니다 (보통 #emscripten의 IRC 채널은 꽤 도움이된다).
  • Emscripten은 코드를 매우 쉽게 컴파일합니다. 물론 잘 이해하고 있지만 C의 해결책을 이해할 필요가 있습니다. JavaScript 엔진 (main_loop, 콜백 사용 등)에서 예상대로 작동하도록 코드의 특정 부분을 다시 작성해야 할 것입니다. 바로,하지만 대부분 브라우저 사용을 위해 코딩으로 나는, 당신은 Emscripten 파일 액세스 에뮬레이션을 변경해야 할 것입니다 두려워 -
  • 당신은 또한 동기 파일 API를 사용하려고 할 수 (http://nodejs.org/api/fs.html 참조) Node.js를 사용 지금.
0

JavaScriptCore은 JSObjectMakeFunctionWithCallback()입니다. 이것은 잠재적으로 lot의 상용구 코드가 포함 된 인수와 예외를 변환하는 것과 같습니다.

0

이제 Node.js가 PowerPC에서 실행됩니다.을 참조하십시오 (리눅스를 실행하는 powerpc 프로세서가있는 시스템에서 실행되는 것 같습니다).