2015-04-21 4 views
0

Я успешно установил Open-zwave на мою систему ubuntu с помощью sudo make и sudo make install. После этого я хотел скомпилировать пример в этом пакете (зайдите в cpp/example и сделал «make»), но после этого он показывает мне много функций, которые он не нашел. Они расположены в файлах заголовков. Заголовочные файлы включены в основную часть, и я ничего не изменил при создании файла makefile. У кого-то такая же проблема? Вот пример ошибки:Компиляция примера Openzwave

/home/ubuntu/OPENZWAVE/install/open-zwave-master/cpp/examples/MinOZW/.lib/Main.o: В функции main': Main.cpp:(.text.startup+0x7a): undefined reference to OpenZWave :: Менеджер :: getVersionAsString() ' Main.cpp :(. text.startup + 0x108): неопределенная ссылка на `OpenZWave :: Options :: Create (std :: string const &, std :: string const &, std :: string const &)»

И там много этих функций пропущенных, которые находятся в заголовке (который находит компилятор ...)

Я скомпилировать пример с eclip se и через терминал ... это то же самое.

Я надеюсь, что это поможет. Я понимаю, что не столько писать свой собственный Makefile. Если это необходимо, я могу скопировать созданный файл makefile здесь. Thx для вашей помощи.

+0

Привет, я нашел проблему самостоятельно.1. Заголовок ищет только в одной папке с «HEADER», но если я использую

и напишу путь в includeepath в eclipse, он найдет все. 2. Компилятор пропустил компоновщик openzwave и где он может найти lib. Это была проблема, почему он не может найти каждую функцию, находящуюся в заголовке. – knowless

ответ

0

IIRC, getVersionAsString() - это недавно добавленная статическая функция. Скорее всего, у вас установлена ​​версия версии OpenZWave, установленная в вашей системе, и компиляция не работает, потому что она загружает файлы заголовков оттуда.

Вы бежите sudo make install после успешного завершения make? Это должно заменить старую установку OpenZWave на более новую.

 Смежные вопросы

  • Нет связанных вопросов^_^