Link issue with static library of nodejs
Hello, I want to use nodejs with swig. In order to do that I need to link my library with node. But I cannot build shared library for nodejs only static (it's a requirement). So I build node js using this config ./configure --prefix=${NODEJS_INSTALL} --enable-static So far everything build fine and smoothly, but when I link I have some missing symbol related to cache:
"node::native_module::has_code_cache" "node::native_module::NativeModuleEnv::InitializeCodeCache()"
I am not sure what I am doing wrong, it seems this file can be autogenerated but not sure why is missing. I also try using whole archive when linking but change nothing.
Any thought ?
- Version: v12.0.0
- Platform: OSX
LINK ERROR :
Undefined symbols for architecture x86_64: "node::native_module::has_code_cache", referenced from: node::Initialize(v8::Localv8::Object, v8::Localv8::Value, v8::Localv8::Context) in libnode.a(node_config.o) "node::native_module::NativeModuleEnv::InitializeCodeCache()", referenced from: node::InitializeNodeWithArgs(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >*) in libnode.a(node.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed.