Compile fail with latest open-wave
Posted: Sunday 05 May 2019 10:28
Hello,
I've just updated the open-wave libraries to the latest release (branch Master), version 1.6.
It looks like a of changes were committed on May 3. Lots of files have changed.
When trying to compile Domoticz, the linking fails with several errors linked to ZWave:
[ 1%] Built target minizip
-- Found Git: /usr/bin/git (found version "2.17.1")
[ 1%] Built target revisiontag
[ 1%] Built target domoticz_gch
[ 12%] Built target lua
[ 19%] Built target mqtt
[ 20%] Built target sqlite
Scanning dependencies of target domoticz
[ 20%] Building CXX object CMakeFiles/domoticz.dir/main/domoticz.cpp.o
cc1plus: warning: ./stdafx.h.gch/.c++: created by a different GCC executable
[ 20%] Linking CXX executable domoticz
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateNodeEvent(OpenZWave::ValueID const&, int)':
OpenZWave.cpp:(.text+0x1c13): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateNodeScene(OpenZWave::ValueID const&, int)':
OpenZWave.cpp:(.text+0x2196): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::GetNodeValuesJson(unsigned int, int, Json::Value&, int)':
OpenZWave.cpp:(.text+0x55ba): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5822): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x584a): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5fca): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5ff2): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::AddValue(OpenZWave::ValueID const&, COpenZWave::NodeInfo const*)':
OpenZWave.cpp:(.text+0x8d3a): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::EnableNodePoll(unsigned int, int, int)':
OpenZWave.cpp:(.text+0xc172): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::GetValueByCommandClassLabel(int, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, OpenZWave::ValueID&)':
OpenZWave.cpp:(.text+0x113b6): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateValue(OpenZWave::ValueID const&)':
OpenZWave.cpp:(.text+0x13176): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/openzwave/control_panel/ozwcp.cpp.o: In function `COpenZWaveControlPanel::web_get_values(int, TiXmlElement*)':
ozwcp.cpp:(.text+0x21b1): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
ozwcp.cpp:(.text+0x237a): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/openzwave/control_panel/ozwcp.cpp.o: In function `COpenZWaveControlPanel::DoSceneCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
ozwcp.cpp:(.text+0x57b5): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
collect2: error: ld returned 1 exit status
CMakeFiles/domoticz.dir/build.make:6228: recipe for target 'domoticz' failed
make[2]: *** [domoticz] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/domoticz.dir/all' failed
make[1]: *** [CMakeFiles/domoticz.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
I usually try to keep OpenZwave libraries up to date to ensure support of newer equipment.
For now, I had to revert back to an older commit of Open-Zwave libraries for Domoticz to compile again.
I hope Domoticz can be adjusted to supoprt the latest Zwave libraries.
I've just updated the open-wave libraries to the latest release (branch Master), version 1.6.
It looks like a of changes were committed on May 3. Lots of files have changed.
When trying to compile Domoticz, the linking fails with several errors linked to ZWave:
[ 1%] Built target minizip
-- Found Git: /usr/bin/git (found version "2.17.1")
[ 1%] Built target revisiontag
[ 1%] Built target domoticz_gch
[ 12%] Built target lua
[ 19%] Built target mqtt
[ 20%] Built target sqlite
Scanning dependencies of target domoticz
[ 20%] Building CXX object CMakeFiles/domoticz.dir/main/domoticz.cpp.o
cc1plus: warning: ./stdafx.h.gch/.c++: created by a different GCC executable
[ 20%] Linking CXX executable domoticz
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateNodeEvent(OpenZWave::ValueID const&, int)':
OpenZWave.cpp:(.text+0x1c13): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateNodeScene(OpenZWave::ValueID const&, int)':
OpenZWave.cpp:(.text+0x2196): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::GetNodeValuesJson(unsigned int, int, Json::Value&, int)':
OpenZWave.cpp:(.text+0x55ba): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5822): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x584a): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5fca): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
OpenZWave.cpp:(.text+0x5ff2): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::AddValue(OpenZWave::ValueID const&, COpenZWave::NodeInfo const*)':
OpenZWave.cpp:(.text+0x8d3a): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::EnableNodePoll(unsigned int, int, int)':
OpenZWave.cpp:(.text+0xc172): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::GetValueByCommandClassLabel(int, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, OpenZWave::ValueID&)':
OpenZWave.cpp:(.text+0x113b6): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/OpenZWave.cpp.o: In function `COpenZWave::UpdateValue(OpenZWave::ValueID const&)':
OpenZWave.cpp:(.text+0x13176): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/openzwave/control_panel/ozwcp.cpp.o: In function `COpenZWaveControlPanel::web_get_values(int, TiXmlElement*)':
ozwcp.cpp:(.text+0x21b1): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
ozwcp.cpp:(.text+0x237a): undefined reference to `OpenZWave::Manager::GetValueHelp[abi:cxx11](OpenZWave::ValueID const&)'
CMakeFiles/domoticz.dir/hardware/openzwave/control_panel/ozwcp.cpp.o: In function `COpenZWaveControlPanel::DoSceneCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
ozwcp.cpp:(.text+0x57b5): undefined reference to `OpenZWave::Manager::GetValueLabel[abi:cxx11](OpenZWave::ValueID const&)'
collect2: error: ld returned 1 exit status
CMakeFiles/domoticz.dir/build.make:6228: recipe for target 'domoticz' failed
make[2]: *** [domoticz] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/domoticz.dir/all' failed
make[1]: *** [CMakeFiles/domoticz.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
I usually try to keep OpenZwave libraries up to date to ensure support of newer equipment.
For now, I had to revert back to an older commit of Open-Zwave libraries for Domoticz to compile again.
I hope Domoticz can be adjusted to supoprt the latest Zwave libraries.