/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> >)'
#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;
}
#!/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
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
/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
$ objdump -T /opt/libv8-6.5/lib/libv8_libplatform.so | grep NewDefault
000000000000a850 g DF .text 000000000000012e Base _ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingENSt3__110unique_ptrINS_17TracingControllerENS3_14default_deleteIS5_EEEE
_ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingESt10unique_ptrINS_17TracingControllerESt14default_deleteIS4_EE
/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> >)'
Building with GN args:
is_debug: false,
is_official_build: true,
is_component_build: true,
is_cfi: false,
is_clang: false,
v8_use_external_startup_data: false,
treat_warnings_as_errors: false,
use_custom_libcxx: false,
use_sysroot: false,
use_gold: false
--
--
v8-users mailing list
v8-u...@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to a topic in the Google Groups "v8-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/v8-users/Jb1VSouy2Z0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to v8-users+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.