1

我已经使用 sudo make 和 sudo make install 在我的 ubuntu 系统上成功安装了 Open-zwave。在此之后,我想编译这个包中的示例(进入 cpp/example 并执行“make”),但在此之后,他向我展示了许多他没有找到的函数。这位于头文件中。头文件包含在主文件中,我没有通过自动创建的 makefile 进行任何更改。有人有同样的问题吗?以下是错误示例:

/home/ubuntu/OPENZWAVE/install/open-zwave-master/cpp/examples/MinOZW/.lib/Main.o:在函数main': Main.cpp:(.text.startup+0x7a): undefined reference toOpenZWave::Manager::getVersionAsString()' Main.cpp:(.text.startup+ 0x108): 未定义引用`OpenZWave::Options::Create(std::string const&, std::string const&, std::string const&)'

并且有很多这样的函数遗漏了,它们在头文件中(编译器发现......)

我用eclipse和终端编译了这个例子......它是一样的。

我希望有人能提供帮助。我对编写自己的 Makefile 了解不多。如果需要,我可以将生成的 makefile 复制到这里。谢谢您的帮助。

4

1 回答 1

0

IIRC,getVersionAsString() 是最近添加的静态函数。很可能您的系统中安装了版本的 OpenZWave,并且编译失败,因为它从那里加载了头文件。

你跑过sudo make install成功make吗?这应该用较新的安装替换旧的 OpenZWave 安装。

于 2015-10-15T19:13:10.430 回答