I have the following CMakeLists file:
cmake_minimum_required(VERSION 2.8)
#set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
find_path(LOG4CXX_INCLUDE_FILE logger.h PATHS /include/log4cxx
/usr/include/log4cxx /usr/local/include/log4cxx)
find_library(LOG4CXX NAMES log4cxx log4cxxd PATHS /lib /usr/lib
/usr/local/lib)
if(NOT LOG4CXX)
message(FATAL_ERROR "log4cxx not found!")
else(LOG4CXX)
message(STATUS "Found log4cxx: ${LOG4CXX}")
set(LOG4CXX_LIBRARIES log4cxx aprutil-1 apr-1 expat)
endif(NOT LOG4CXX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -fPIC -pthread")
add_library(SamplePartitioner SHARED src/SamplePartitioner.cpp)
add_library(SampleManager SHARED src/SampleManager.cpp)
add_library(NodeJSOperatorWrapper SHARED src/NodeJSOperatorWrapper.cpp)
target_link_libraries(NodeJSOperatorWrapper ${LOG4CXX_LIBRARIES} v8 pthread)
I build v8 with make GYPFLAGS="-Dcomponent=shared_library" native and
i18nsupport=off.
The libraries are build, but there is following from the ld:
ld libNodeJSOperatorWrapper.so
ld: warning: cannot find entry symbol _start; not setting start address
libNodeJSOperatorWrapper.so: undefined reference to
`v8::HandleScope::CreateHandle(v8::internal::Isolate*,
v8::internal::Object*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::FunctionTemplate::New(v8::Isolate*, void
(*)(v8::FunctionCallbackInfo<v8::Value> const&), v8::Handle<v8::Value>,
v8::Handle<v8::Signature>, int)'
libNodeJSOperatorWrapper.so: undefined reference to
`streammine3G::Buffer::Buffer(void*, int)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::ObjectTemplate::New(v8::Isolate*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::Script::Compile(v8::Handle<v8::String>, v8::ScriptOrigin*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::Function::Call(v8::Handle<v8::Value>, int, v8::Handle<v8::Value>*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::HandleScope::HandleScope(v8::Isolate*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::Integer::New(v8::Isolate*, int)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::HandleScope::CreateHandle(v8::internal::HeapObject*,
v8::internal::Object*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::Object::SlowGetInternalField(int)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::String::NewFromUtf8(v8::Isolate*, char const*,
v8::String::NewStringType, int)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::EscapableHandleScope::Escape(v8::internal::Object**)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::External::New(v8::Isolate*, void*)'
libNodeJSOperatorWrapper.so: undefined reference to
`streammine3G::Buffer::getSize()'
libNodeJSOperatorWrapper.so: undefined reference to
`streammine3G::Buffer::getData()'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::EscapableHandleScope::EscapableHandleScope(v8::Isolate*)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::Context::New(v8::Isolate*, v8::ExtensionConfiguration*,
v8::Handle<v8::ObjectTemplate>, v8::Handle<v8::Value>)'
libNodeJSOperatorWrapper.so: undefined reference to
`v8::V8::GlobalizeReference(v8::internal::Isolate*, v8::internal::Object**)'
And the by the execution:
undefined symbol:
_ZN2v811HandleScope12CreateHandleEPNS_8internal7IsolateEPNS1_6ObjectE
When i build v8 as a static library, it works fine. Then i use additional
line in CMakeLists:
target_link_libraries(NodeJSOperatorWrapper -Wl,--start-group v8_base.a
v8_snapshot.a v8_libbase.a v8_libplatform.a -Wl,--end-group)
Thanks,
Peter
--
--
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.