I don't know in detail what you're doing, but the implementation of v8::HandleScope::CreateHandle(v8::internal::Isolate*, v8::internal::Object*) (see 'c++filt _ZN2v811HandleScope12CreateHandleEPNS_8internal7IsolateEPNS1_6ObjectE') is libv8_base.a for normal (non-shared) builds. The dynamic linker has to be able to resolve that symbol somehow, but without any details it's hard to guess what your actual problem is.