Moin *,
ich möchte das Tool 'SBFspot - Yet another tool to read power production of $MA solar inverters' unter CentOS7 zum Laufen bringen.
http://sbfspot.codeplex.com/
Ich möchte mysql/mariadb und die Ethernet-Verbindung nutzen, welche die Marketing-Abteilung von SMA (TM) auf den unsinnigen Namen 'Speedwire' (TM) getauft hat.
Da ich keine passenden Pakete finden konnte, habe ich die Sourcen heruntergeladen und versucht, es selbst auf dem Zielsystem zu bauen.
Hier musste ich mit zwei Problemen kämpfen:
1. Die recht rudimentären Anleitungen befassen sich mit anderen Distributionen und/oder der SQLite- und Bluetooth-Variante, welche ich beide nicht will, aber laut Dokumentation für das Build trotzdem benötige. Für CentOS sind die dort genannten Pakete unpassend.
Ich hoffe, hiermit die richtigen und vollständigen Pakete gefunden zu haben:
Damit scheint zumindest das Compile erfolgreich (s.u.).
2. Beim Linken kommt es zu einer Fehlermeldung:
Hier der gesamte Prozess:
Meine Tage als C++-Entwickler liegen schon ein paar Monde zurück, weswegen ich mit der Fehlermeldung derzeit nicht viel anfangen kann.
Eine Recherche findet relativ viele Fälle, bei denen es Mischmasch der Architektur (32/64bit) bei den Libs als Ursache angegeben wird.
Meine derzeitige Konfiguration:
Wär' prima, wenn hier jemand helfen könnte...
TNX
cu, gehrke
ich möchte das Tool 'SBFspot - Yet another tool to read power production of $MA solar inverters' unter CentOS7 zum Laufen bringen.
http://sbfspot.codeplex.com/
Ich möchte mysql/mariadb und die Ethernet-Verbindung nutzen, welche die Marketing-Abteilung von SMA (TM) auf den unsinnigen Namen 'Speedwire' (TM) getauft hat.
Da ich keine passenden Pakete finden konnte, habe ich die Sourcen heruntergeladen und versucht, es selbst auf dem Zielsystem zu bauen.
Hier musste ich mit zwei Problemen kämpfen:
1. Die recht rudimentären Anleitungen befassen sich mit anderen Distributionen und/oder der SQLite- und Bluetooth-Variante, welche ich beide nicht will, aber laut Dokumentation für das Build trotzdem benötige. Für CentOS sind die dort genannten Pakete unpassend.
Ich hoffe, hiermit die richtigen und vollständigen Pakete gefunden zu haben:
Code:
# yum install -y bluez-libs-devel boost-devel mysql-devel mariadb mysql++-devel.x86_64
2. Beim Linken kommt es zu einer Fehlermeldung:
Code:
/bin/ld: cannot find -lmysqlclient
Code:
# make install_mysql
test -d bin/Release_MySQL || mkdir -p bin/Release_MySQL
test -d obj/Release_MySQL || mkdir -p obj/Release_MySQL
g++ -Wall -O2 -DUSE_MYSQL -c boost_ext.cpp -o obj/Release_MySQL/boost_ext.o
g++ -Wall -O2 -DUSE_MYSQL -c db_MySQL.cpp -o obj/Release_MySQL/db_MySQL.o
g++ -Wall -O2 -DUSE_MYSQL -c db_MySQL_Export.cpp -o obj/Release_MySQL/db_MySQL_Export.o
db_MySQL_Export.cpp: In Elementfunktion »int db_SQL_Export::day_data(InverterData**)«:
db_MySQL_Export.cpp:95:26: Warnung: »false« wird in Zeigertyp »my_bool* {aka char*}« umgewandelt [-Wconversion-null]
values[0].is_null = false;
^
db_MySQL_Export.cpp:102:26: Warnung: »false« wird in Zeigertyp »my_bool* {aka char*}« umgewandelt [-Wconversion-null]
values[1].is_null = false;
^
[...]
db_MySQL_Export.cpp:413:25: Warnung: »false« wird in Zeigertyp »my_bool* {aka char*}« umgewandelt [-Wconversion-null]
values[11].is_null = false;
^
g++ -Wall -O2 -DUSE_MYSQL -c misc.cpp -o obj/Release_MySQL/misc.o
g++ -Wall -O2 -DUSE_MYSQL -c strptime.cpp -o obj/Release_MySQL/strptime.o
g++ -Wall -O2 -DUSE_MYSQL -c sunrise_sunset.cpp -o obj/Release_MySQL/sunrise_sunset.o
g++ -Wall -O2 -DUSE_MYSQL -c SBFNet.cpp -o obj/Release_MySQL/SBFNet.o
g++ -Wall -O2 -DUSE_MYSQL -c Bluetooth.cpp -o obj/Release_MySQL/Bluetooth.o
g++ -Wall -O2 -DUSE_MYSQL -c CSVexport.cpp -o obj/Release_MySQL/CSVexport.o
g++ -Wall -O2 -DUSE_MYSQL -c Ethernet.cpp -o obj/Release_MySQL/Ethernet.o
g++ -Wall -O2 -DUSE_MYSQL -c EventData.cpp -o obj/Release_MySQL/EventData.o
g++ -Wall -O2 -DUSE_MYSQL -c ArchData.cpp -o obj/Release_MySQL/ArchData.o
g++ -Wall -O2 -DUSE_MYSQL -c SBFspot.cpp -o obj/Release_MySQL/SBFspot.o
g++ -Wall -O2 -DUSE_MYSQL -c TagDefs.cpp -o obj/Release_MySQL/TagDefs.o
g++ -o bin/Release_MySQL/SBFspot obj/Release_MySQL/boost_ext.o obj/Release_MySQL/db_MySQL.o obj/Release_MySQL/db_MySQL_Export.o obj/Release_MySQL/misc.o obj/Release_MySQL/strptime.o obj/Release_MySQL/sunrise_sunset.o obj/Release_MySQL/SBFNet.o obj/Release_MySQL/Bluetooth.o obj/Release_MySQL/CSVexport.o obj/Release_MySQL/Ethernet.o obj/Release_MySQL/EventData.o obj/Release_MySQL/ArchData.o obj/Release_MySQL/SBFspot.o obj/Release_MySQL/TagDefs.o -s -lbluetooth -lboost_date_time -lboost_system -lpthread -lmysqlclient
/bin/ld: cannot find -lmysqlclient
collect2: Fehler: ld gab 1 als Ende-Status zurück
make: *** [out_release_mysql] Fehler 1
Eine Recherche findet relativ viele Fälle, bei denen es Mischmasch der Architektur (32/64bit) bei den Libs als Ursache angegeben wird.
Meine derzeitige Konfiguration:
Code:
$ uname -r
3.10.0-327.36.2.el7.x86_64
Code:
# yum list mysql*
Geladene Plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: repo.de.bigstepcloud.com
* epel: mirror.pmf.kg.ac.rs
* extras: artfiles.org
* updates: repo.de.bigstepcloud.com
Installierte Pakete
mysql++.x86_64 3.1.0-12.el7 @epel
mysql++-devel.x86_64 3.1.0-12.el7 @epel
Verfügbare Pakete
MySQL-python.x86_64 1.2.3-11.el7 base
MySQL-zrm.noarch 3.0-6.el7 epel
mysql++-manuals.x86_64 3.1.0-12.el7 epel
mysql-connector-java.noarch 1:5.1.25-3.el7 base
mysql-connector-odbc.x86_64 5.2.5-6.el7 base
mysql-connector-python.noarch 1.1.6-1.el7 epel
mysql-mmm.noarch 2.2.1-14.el7 epel
mysql-mmm-agent.noarch 2.2.1-14.el7 epel
mysql-mmm-monitor.noarch 2.2.1-14.el7 epel
mysql-mmm-tools.noarch 2.2.1-14.el7 epel
mysql-proxy.x86_64 0.8.5-2.el7 epel
mysql-proxy-devel.x86_64 0.8.5-2.el7 epel
mysql-utilities.noarch 1.3.6-1.el7 epel
mysqlreport.noarch 3.5-11.el7 epel
mysqltuner.noarch 1.6.0-1.el7 epel
Code:
# cat /etc/ld.so.conf.d/mariadb-x86_64.conf
/usr/lib64/mysql
Code:
# ls -l /usr/lib64/mysql/
insgesamt 3072
lrwxrwxrwx. 1 root root 17 18. Nov 21:29 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 root root 20 18. Nov 21:29 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 root root 24 18. Sep 2015 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
-rwxr-xr-x. 1 root root 3133712 12. Aug 00:48 libmysqlclient.so.18.0.0
-rwxr-xr-x. 1 root root 6758 12. Aug 00:47 mysql_config
Wär' prima, wenn hier jemand helfen könnte...
TNX
cu, gehrke