Not 100% sure because I don't use cmake often, but it looks to me like
maybe you're just missing the flag -I include in there. Based on those
undefined references it looks like you're not seeing the includes. It looks
like your linking is working fine, it's just not resolving types that would
be available via include.
On Saturday, July 5, 2014 7:43:09 AM UTC-4, Peter wrote:
>
> 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.