Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zwave4j OS X build against OZW v1.5 fails #49

Open
tmcsys opened this issue Sep 5, 2018 · 1 comment
Open

zwave4j OS X build against OZW v1.5 fails #49

tmcsys opened this issue Sep 5, 2018 · 1 comment

Comments

@tmcsys
Copy link

tmcsys commented Sep 5, 2018

Mac OS X 10.11.6
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Oracle Java(TM) SE Runtime Environment 1.8.0_112-b16

:linkMainOsx_x86-64SharedLibrary FAILED
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
Undefined symbols for architecture x86_64:
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::find(char, unsigned long) const", referenced from:
OpenZWave::split(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::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, bool) in libopenZWave.a(Utils.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::compare(char const*) const", referenced from:
OpenZWave::Options::Option::SetValueFromString(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
OpenZWave::CommandClasses::RegisterCommandClasses() in libopenZWave.a(CommandClasses.o)
OpenZWave::CommandClasses::ParseCommandClassOption(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, bool) in libopenZWave.a(CommandClasses.o)
OpenZWave::NodeNaming::RequestState(unsigned int, unsigned char, OpenZWave::Driver::MsgQueue) in libopenZWave.a(NodeNaming.o)
OpenZWave::NodeNaming::HandleMsg(unsigned char const*, unsigned int, unsigned int) in libopenZWave.a(NodeNaming.o)
OpenZWave::ShouldSecureCommandClass(unsigned char) in libopenZWave.a(ZWSecurity.o)
OpenZWave::ManufacturerSpecific::SetProductDetails(OpenZWave::Node*, unsigned short, unsigned short, unsigned short) in libopenZWave.a(ManufacturerSpecific.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::compare(unsigned long, unsigned long, char const*) const", referenced from:
OpenZWave::Options::ParseOptionsString(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
"std::__1::__vector_base_common::__throw_length_error() const", referenced from:
void std::__1::vector<unsigned char, std::__1::allocator >::__push_back_slow_path(unsigned char const&) in libopenZWave.a(Node.o)
void std::__1::vector<OpenZWave::Scene::SceneStorage*, std::__1::allocatorOpenZWave::Scene::SceneStorage* >::__push_back_slow_path<OpenZWave::Scene::SceneStorage* const>(OpenZWave::Scene::SceneStorage* const&) in libopenZWave.a(Scene.o)
void std::__1::vector<OpenZWave::ValueID, std::__1::allocatorOpenZWave::ValueID >::__push_back_slow_path<OpenZWave::ValueID const>(OpenZWave::ValueID const&) in libopenZWave.a(Scene.o)
void 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 > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const>(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Utils.o)
std::__1::vector<OpenZWave::ValueList::Item, std::__1::allocatorOpenZWave::ValueList::Item >::allocate(unsigned long) in libopenZWave.a(ValueList.o)
void std::__1::vector<OpenZWave::ValueList::Item, std::__1::allocatorOpenZWave::ValueList::Item >::__push_back_slow_path<OpenZWave::ValueList::Item const>(OpenZWave::ValueList::Item const&) in libopenZWave.a(ValueList.o)
void 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 > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const>(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(ValueList.o)
...
"std::__1::__vector_base_common::__throw_out_of_range() const", referenced from:
std::__1::vector<OpenZWave::ValueList::Item, std::__1::allocatorOpenZWave::ValueList::Item >::at(unsigned long) const in libopenZWave.a(ValueList.o)
std::__1::vector<OpenZWave::CommandClass::RefreshValue*, std::__1::allocatorOpenZWave::CommandClass::RefreshValue* >::at(unsigned long) in libopenZWave.a(CommandClass.o)
"std::__1::__basic_string_common::__throw_length_error() const", referenced from:
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(Manager.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(ValueShort.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(Node.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(Utils.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(ValueInt.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(ValueByte.o)
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init<char*>(char*, char*) in libopenZWave.a(Color.o)
...
"std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::endl<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(unsigned short) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int) in libopenZWave.a(Options.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::endl<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&) in libopenZWave.a(Options.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libopenZWave.a(Options.o)
...
"std::__1::ios_base::getloc() const", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::endl<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(unsigned short) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libopenZWave.a(Manager.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(int) in libopenZWave.a(Options.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::endl<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&) in libopenZWave.a(Options.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libopenZWave.a(Options.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::at(unsigned long)", referenced from:
OpenZWave::Color::SetValue(OpenZWave::Value const&) in libopenZWave.a(Color.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init(char const*, unsigned long)", referenced from:
_Java_org_zwave4j_Options_createNativeOptions in org_zwave4j_Options.o
_Java_org_zwave4j_Options_addOptionBool in org_zwave4j_Options.o
_Java_org_zwave4j_Options_addOptionInt in org_zwave4j_Options.o
_Java_org_zwave4j_Options_addOptionString in org_zwave4j_Options.o
_Java_org_zwave4j_Options_getOptionAsBool in org_zwave4j_Options.o
_Java_org_zwave4j_Options_getOptionAsInt in org_zwave4j_Options.o
_Java_org_zwave4j_Options_getOptionAsString in org_zwave4j_Options.o
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::__init(char const*, unsigned long, unsigned long)", referenced from:
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Manager.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Node.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Scene.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char const*) in libopenZWave.a(Scene.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Driver.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char const*) in libopenZWave.a(Driver.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::append(char const*)", referenced from:
OpenZWave::Options::Create(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
OpenZWave::Wait::Multiple(OpenZWave::Wait**, unsigned int, int) in libopenZWave.a(Wait.o)
OpenZWave::Driver::ReadMsg() in libopenZWave.a(Driver.o)
OpenZWave::PktToString(unsigned char const*, unsigned int) in libopenZWave.a(Utils.o)
OpenZWave::ValueRaw::GetAsString() const in libopenZWave.a(ValueRaw.o)
OpenZWave::CommandClass::ExtractValue(unsigned char const*, unsigned char*, unsigned char*, unsigned char) const in libopenZWave.a(CommandClass.o)
OpenZWave::HidController::Read() in libopenZWave.a(HidController.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::append(char const*, unsigned long)", referenced from:
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Manager.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
OpenZWave::Options::Option::SetValueFromString(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Node.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Scene.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char const*) in libopenZWave.a(Scene.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Driver.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::assign(char const*)", referenced from:
_Java_org_zwave4j_Manager_getNodeClassInformation__JSSLjava_lang_String_2Ljava_lang_Short_2 in org_zwave4j_Manager.o
_Java_org_zwave4j_Manager_getNodeClassInformation__JSSLjava_lang_String_2 in org_zwave4j_Manager.o
OpenZWave::Manager::GetValueAsString(OpenZWave::ValueID const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >) in libopenZWave.a(Manager.o)
OpenZWave::Options::Create(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
OpenZWave::ValueString::ReadXML(unsigned int, unsigned char, unsigned char, TiXmlElement const
) in libopenZWave.a(ValueString.o)
OpenZWave::ValueDecimal::ReadXML(unsigned int, unsigned char, unsigned char, TiXmlElement const*) in libopenZWave.a(ValueDecimal.o)
OpenZWave::Node::ReadXML(TiXmlElement const*) in libopenZWave.a(Node.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::resize(unsigned long, char)", referenced from:
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Manager.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::str(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Manager.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(ValueShort.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::str(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(ValueShort.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Node.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::str(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Node.o)
OpenZWave::trim(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&) in libopenZWave.a(Utils.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::push_back(char)", referenced from:
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Manager.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(ValueShort.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Node.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Utils.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(ValueInt.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(ValueByte.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libopenZWave.a(Color.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::basic_string(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)", referenced from:
OpenZWave::Driver::GetControllerPath() const in libopenZWave.a(Manager.o)
OpenZWave::Driver::GetLibraryVersion() const in libopenZWave.a(Manager.o)
OpenZWave::Driver::GetLibraryTypeName() const in libopenZWave.a(Manager.o)
OpenZWave::ValueDecimal::GetValue() const in libopenZWave.a(Manager.o)
OpenZWave::ValueString::GetValue() const in libopenZWave.a(Manager.o)
OpenZWave::Manager::GetSceneLabel(unsigned char) in libopenZWave.a(Manager.o)
OpenZWave::Options::Create(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libopenZWave.a(Options.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator

@tmcsys
Copy link
Author

tmcsys commented Sep 7, 2018

BUILD SUCCESSFUL

Two issues:

  1. A MacOS/Clang thing. Given the tools level, Xcode will link against the appropriate library, stdc++ or c++.
  2. MacOS Foundations were not linked against the hid api code.

I know next to nothing about gradle, so while this may not be the most correct solution to building zwave4j on MacOS, it works.

370,372c370,373
<                     cppCompiler.args "-mmacosx-version-min=10.4"
<                     cCompiler.args "-mmacosx-version-min=10.4"
<                     linker.args "-mmacosx-version-min=10.4"
---
>                     cppCompiler.args "-mmacosx-version-min=10.10"
>                     cCompiler.args "-mmacosx-version-min=10.10"
>                     linker.args "-mmacosx-version-min=10.10"
>                     linker.args "-framework", "IOKit", "-framework", "CoreFoundation"
--- build.gradle.dist	2018-09-07 10:49:38.000000000 -0400
+++ build.gradle	2018-09-07 11:01:15.000000000 -0400
@@ -367,9 +367,10 @@
             } else if (targetPlatform.operatingSystem.macOsX) {
                 if (toolChain in Gcc || toolChain in Clang) {
                     cppCompiler.define "DARWIN"
-                    cppCompiler.args "-mmacosx-version-min=10.4"
-                    cCompiler.args "-mmacosx-version-min=10.4"
-                    linker.args "-mmacosx-version-min=10.4"
+                    cppCompiler.args "-mmacosx-version-min=10.10"
+                    cCompiler.args "-mmacosx-version-min=10.10"
+                    linker.args "-mmacosx-version-min=10.10"
+                    linker.args "-framework", "IOKit", "-framework", "CoreFoundation"
                 }
             }
         }

@tmcsys tmcsys changed the title OS X build against OZW v1.5 fails zwave4j OS X build against OZW v1.5 fails Sep 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant