Bekomme Homegear 0.7.x nicht auf meinem Rasp3 kompiliert

php 7.0.20 und libhomegear-base kompilieren klappt soweit ohne Probleme.
Wenn ich dann aber versuche Homegear zu kompilieren bekomme ich immer Folgende Fehlermeldungen (scheint das was mit dem Linken von Zend zu tun zu haben??)

/bin/sh ../libtool  --tag=CXX   --mode=link g++  -g -O2 -Wl,-rpath=/lib/homegear -Wl,-rpath=/usr/lib/homegear -Wl,-rpath=/usr/local/lib/homegear  -o homegear main.o Monitor.o CLI/CLIClient.o CLI/CLIServer.o Database/SQLite3.o Events/EventHandler.o Flows/
FlowsClient.o Flows/FlowsClientData.o Flows/FlowsProcess.o Flows/FlowsServer.o Flows/NodeManager.o Flows/SimplePhpNode.o Flows/StatefulPhpNode.o IPC/IpcClientData.o IPC/IpcServer.o GD/GD.o Licensing/LicensingController.o MQTT/Mqtt.o MQTT/MqttSettings.o R
PC/Auth.o RPC/Client.o RPC/ClientSettings.o RPC/RemoteRpcServer.o RPC/RpcClient.o RPC/RPCMethods.o RPC/RPCServer.o RPC/Server.o WebServer/WebServer.o Systems/DatabaseController.o Systems/FamilyController.o UPnP/UPnP.o User/User.o -lpthread -lreadline -lg
crypt -lgnutls -lhomegear-base -lhomegear-node -lgpg-error -lsqlite3 -ldl libscriptengine.a  -lcurl -lmysqlclient
libtool: link: g++ -g -O2 -Wl,-rpath=/lib/homegear -Wl,-rpath=/usr/lib/homegear -Wl,-rpath=/usr/local/lib/homegear -o homegear main.o Monitor.o CLI/CLIClient.o CLI/CLIServer.o Database/SQLite3.o Events/EventHandler.o Flows/FlowsClient.o Flows/FlowsClient
Data.o Flows/FlowsProcess.o Flows/FlowsServer.o Flows/NodeManager.o Flows/SimplePhpNode.o Flows/StatefulPhpNode.o IPC/IpcClientData.o IPC/IpcServer.o GD/GD.o Licensing/LicensingController.o MQTT/Mqtt.o MQTT/MqttSettings.o RPC/Auth.o RPC/Client.o RPC/Clie
ntSettings.o RPC/RemoteRpcServer.o RPC/RpcClient.o RPC/RPCMethods.o RPC/RPCServer.o RPC/Server.o WebServer/WebServer.o Systems/DatabaseController.o Systems/FamilyController.o UPnP/UPnP.o User/User.o  -lpthread -lreadline -lgcrypt -lgnutls /usr/lib/libhom
egear-base.so /usr/lib/libhomegear-node.so -lgpg-error -lsqlite3 -ldl libscriptengine.a -lcurl -lmysqlclient
libscriptengine.a(libscriptengine_a-php_node.o): In function `php_node_startup()':
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:425: undefined reference to `zend_new_interned_string'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:425: undefined reference to `zend_new_interned_string'
libscriptengine.a(libscriptengine_a-php_node.o): In function `zend_string_alloc':
/usr/include/php7-homegear/php/Zend/zend_string.h:121: undefined reference to `__zend_malloc'
libscriptengine.a(libscriptengine_a-php_node.o): In function `php_node_startup()':
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:426: undefined reference to `zend_register_internal_class'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:427: undefined reference to `zend_declare_class_constant_stringl'
libscriptengine.a(libscriptengine_a-php_node.o): In function `zend_string_alloc':
/usr/include/php7-homegear/php/Zend/zend_string.h:121: undefined reference to `_emalloc_32'
libscriptengine.a(libscriptengine_a-php_node.o): In function `php_init_node(std::shared_ptr<BaseLib::ScriptEngine::ScriptInfo>, _zend_class_entry*, _zval_struct*)':
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:438: undefined reference to `zend_lookup_class'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:449: undefined reference to `_ecalloc'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:450: undefined reference to `zend_object_std_init'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:451: undefined reference to `object_properties_init'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:452: undefined reference to `zend_get_std_object_handlers'
libscriptengine.a(libscriptengine_a-php_node.o): In function `zend_hash_str_find_ptr':
/usr/include/php7-homegear/php/Zend/zend_hash.h:717: undefined reference to `zend_hash_str_find'
libscriptengine.a(libscriptengine_a-php_node.o): In function `zend_string_alloc':
/usr/include/php7-homegear/php/Zend/zend_string.h:121: undefined reference to `_emalloc_32'
libscriptengine.a(libscriptengine_a-php_node.o): In function `php_init_node(std::shared_ptr<BaseLib::ScriptEngine::ScriptInfo>, _zend_class_entry*, _zval_struct*)':
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:493: undefined reference to `tsrm_get_ls_cache'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:493: undefined reference to `executor_globals_id'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:493: undefined reference to `executor_globals_id'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:493: undefined reference to `tsrm_get_ls_cache'
/root/homegear-src/Homegear-master/src/ScriptEngine/php_node.cpp:493: undefined reference to `executor_globals_id'

Jemand eine Idee woran das liegen könnte?

Achja, auf dem Rasp läuft Gentoo Linux.

Habe es jetzt geschafft :slight_smile:

Irgendwann ist mir beim configure aufgefallen, dass er da schon ein paar php header Dateien nicht findet, aber nicht abbricht. Später dann beim Kompilieren scheint das dann Probleme zu machen.

Beim Installieren (make install) von php 7.0.20 kopiert er die header-Dateien in folgendes Verzeichnis:
/usr/include/php7-homegear/php

Später dann beim configure scheint das Script aber hier zu suchen: /usr/include/php7-homegear.
Ich habe dann einfach passende Softlinks erstellt und schon hat es auch mit dem Kompilieren geklappt.

Hat sich da vielleicht was bei php geändert?

Daneben gab es noch folgende Probleme:

  • mit 0.7.3 muss auch die node library installiert sein (sollte man mal in der Anleitung anpassen)
  • Bei Gentoo habe ich das problem, dass das getVersion.sh script mit Fehler aussteigt, wenn in der g++ Zeile kein “-lpthread” Eintrag drin steht. -> Kann man das da nicht auch immer hinzufügen?

Das muss ich noch ergänzen, stimmt…

Ist im dev-Zweig jetzt hinzugefügt.

Viele Grüße

Sathya

Danke fürs formatieren. Irgendwie mag mein Browser das Forum nicht und war sowas von langsam, dass ich kaum editieren konnte. Mit Chrome läufts nu aber besser :slight_smile: