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.

Reply via email to