BRENDAN EICH suggests the source code compiler be V8 C++ SYNTAX SCRIPT On Saturday, December 30, 2017 at 8:54:46 AM UTC-8, Bogdan Padalko wrote: > > Hi! > > I'm trying to adapt changes from > https://github.com/v8/v8/commit/ffee558e14e28fc8b1f9a3c10ea3615e0d686c7b > to replace CreateDefaultPlatform with NewDefaultPlatform calls, however, > for some reason I'm getting > > /home/vagrant/php-v8/scripts/test_v8/hello_world.cpp:21: undefined > reference to `v8::platform::NewDefaultPlatform(int, > v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, > std::unique_ptr<v8::TracingController, > std::default_delete<v8::TracingController> >)' > > error with the following code: > > #include <v8.h> > #include <libplatform/libplatform.h> > > #include <stdlib.h> > #include <string.h> > > using namespace v8; > > void weak_callback(const v8::WeakCallbackInfo<v8::Persistent<v8::String>>& > data) { > printf("Weak callback called\n"); > data.GetParameter()->Reset(); > } > > int main(int argc, char* argv[]) { > // Initialize V8. > v8::V8::InitializeICU(); > // v8::Platform *platform = v8::platform::CreateDefaultPlatform(); > // v8::V8::InitializePlatform(platform); > > std::unique_ptr<v8::Platform> platform = v8::platform:: > NewDefaultPlatform(); > v8::V8::InitializePlatform(platform.get()); > > V8::Initialize(); > > v8::Isolate::CreateParams create_params; > create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator:: > NewDefaultAllocator(); > > // Create a new Isolate and make it the current one. > Isolate* isolate = v8::Isolate::New(create_params); > > v8::Persistent<v8::String> test; > > { > Isolate::Scope isolate_scope(isolate); > > // Create a stack-allocated handle scope. > HandleScope handle_scope(isolate); > > // Create a new context. > Local<Context> context = Context::New(isolate); > > // Enter the context for compiling and running the hello world script. > Context::Scope context_scope(context); > > > test.Reset(isolate, String::NewFromUtf8(isolate, "Hello' + ', World!'" > )); > test.SetWeak(&test, weak_callback, v8::WeakCallbackType::kParameter); > > > // Create a string containing the JavaScript source code. > Local<String> source = String::NewFromUtf8(isolate, "(2+2*2) + ' ' + > 'Hello' + ', World!'"); > > // Compile the source code. > Local<Script> script = Script::Compile(source); > > // Run the script to get the result. > Local<Value> result = script->Run(); > > // Convert the result to an UTF8 string and print it. > String::Utf8Value utf8(isolate, result); > printf("%s\n", *utf8); > } > > isolate->LowMemoryNotification(); > > > // Dispose the isolate and tear down V8. > isolate->Dispose(); > V8::Dispose(); > V8::ShutdownPlatform(); > > return 0; > } > > build script: > > #!/bin/bash > > ROOT=/opt/libv8-6.5 > LIB_DIR=$ROOT/lib/ > > SRC_DIR=$ROOT > INCLUDE_DIR=$ROOT/include > > set -x > > g++ -std=c++14 hello_world.cpp -o hello_world \ > -g \ > -O2 \ > -std=c++11 \ > -I$INCLUDE_DIR \ > -L$LIB_DIR \ > -Wl,-rpath,$LIB_DIR \ > -lv8_libbase \ > -lv8_libplatform \ > -lv8 \ > -lpthread > > I use v8 build with the following params: > > gn gen out.gn/x64.release --args="is_debug=false is_component_build=true > v8_use_external_startup_data=false" > ninja -v d8 -C out.gn/x64.release > > Host is x64 Ubuntu 16.04, libv8 installed from my pinepain/libv8-6.5 PPA ( > https://launchpad.net/~pinepain/+archive/ubuntu/libv8-6.5) > > I'd really appreciate if anybody give it a look and provide some > suggestions as after spending two days with this I think I just missing > something very simple and obvious. > > Regards, > Bogdan >
-- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.