我已经在我的ubuntu系统上使用sudo make和sudo make install成功安装了Open-zwave。在此之后,我想在这个包中编译示例(进入cpp / example并做“make”),但在此之后,他向我展示了许多他没有找到的函数。它位于headerfiles中。头文件包含在main中,我没有通过自动创建的makefile进行任何更改。有人有同样的问题吗? 以下是错误示例:
/home/ubuntu/OPENZWAVE/install/open-zwave-master/cpp/examples/MinOZW/.lib/Main.o:在函数main':
Main.cpp:(.text.startup+0x7a): undefined reference to
OpenZWave :: Manager :: getVersionAsString()'
Main.cpp :(。text.startup + 0x108):未定义的引用`OpenZWave :: Options :: Create(std :: string const&,std :: string const&,std :: string const&)'
还有很多错过的功能,它们位于标题中(编译器找到...)
我用eclipse和via终端编译了这个例子......它是一样的。
我希望somone可以提供帮助。我不是从编写自己的Makefile中了解到的。如果需要,我可以在这里复制生成的makefile。 谢谢你的帮助。
答案 0 :(得分:0)
IIRC,getVersionAsString()是最近添加的静态函数。很可能您的系统中安装了较旧的版本的OpenZWave,并且编译失败,因为它从那里加载了头文件。
成功sudo make install
后您是否已经make
了?这应该用旧版本替换旧的OpenZWave安装。