Thanks for quick reply! Unfortunately, it's the same. I ended up with hello 
world example after to trying out to use NewDefaultPlatform with php-v8 
(https://github.com/pinepain/php-v8/blob/53a562e10c23e5f835b2ccdb20967f9c4aef529e/src/php_v8_a.cc#L34),
 
which yield me there

/home/vagrant/.phpbrew/php/7.2-debug/bin/php: symbol lookup error: /home/
vagrant/php-v8/modules/v8.so: undefined symbol: 
_ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingESt10unique_ptrINS_17TracingControllerESt14default_deleteIS4_EE

With CreateDefaultPlatform it works just fine, and there was no other 
changes to sources except of using v8 6.5.116 and using NewDefaultPlatform. 
Bare 6.5.116 with CreateDefaultPlatform works fine.


On Saturday, December 30, 2017 at 7:28:25 PM UTC+2, Ben Noordhuis wrote:
>
> On Sat, Dec 30, 2017 at 5:54 PM, Bogdan Padalko <zaq17...@gmail.com 
> <javascript:>> 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 
>
> It sounds like a link order issue.  What happens when you put `-o 
> hello_world` last? 
>

-- 
-- 
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.

Reply via email to