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.