사용자 도구

사이트 도구


kb:v8engine

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:v8engine [2014/11/06 20:54] (현재)
줄 1: 줄 1:
 +====== V8 Engine ======
 +제일 빠른 [[JavaScript]] 엔진이라고 합니다.
 +
 +
 +====== 빌드 ======
 +gyp인지 설치하라고 하는데, 없이도 할 수는 있다.
 +
 +  - 소스 배포본 다운로드
 +    * https://​github.com/​v8/​v8
 +  - Python 설치
 +    * http://​www.python.org/​
 +    * 추가로 설치할 scons가 32비트만을 배포하고 있으니, python도 32비트로 설치하는 게 좋을 듯.
 +  - Scons 설치
 +    * http://​www.scons.org
 +  - Visual Studio 명령 프롬프트에서 아래와 같은 명령을 입력 \\ <​code>​
 +set PATH=%PATH%;​C:​\Python27\Scripts
 +scons library=static mode=debug msvcrt=shared env="​PATH:​%PATH%,​LIB:​%LIB%,​INCLUDE:​%INCLUDE%"​ arch=x64
 +</​code>​
 +
 +
 +====== 간단한 샘플 ======
 +C++ 쪽의 함수를 등록하고,​ 그걸 스크립트를 통해 호출하기
 +<code cpp>
 +using namespace v8;
 +
 +Handle<​Value>​ Alert(const Arguments&​ args)
 +{
 +    String::​AsciiValue str(args[0]);​
 +    //​printf(str);​
 +    return Undefined();​
 +}
 +
 +void Test()
 +{
 +    HandleScope handle_scope;​
 +    ​
 +    Local<​ObjectTemplate>​ global = ObjectTemplate::​New();​
 +    global->​set(String::​New("​alert"​),​ FunctionTemplate::​New(Alert));​
 +    ​
 +    Persistent<​Context>​ context = Context::​New(NULL,​ global);
 +    ​
 +    Context::​Scope context_scope(context);​
 +    ​
 +    Handle<​String>​ source = String::​New("​alert(\"​Hello world\"​);"​);​
 +    Local<​Script>​ script = Script::​Compile(source);​
 +    script->​Run();​
 +    ​
 +    context.Dispose();​
 +}
 +</​code>​
 +
 +====== 링크 ======
 +  * http://​code.google.com/​p/​v8/​
 +
 +----
 +  * see also [[JavaScript]]
  
kb/v8engine.txt · 마지막으로 수정됨: 2014/11/06 20:54 (바깥 편집)