[vz-users] vzlogger unter FreeBSD

Matthias Behr mbehr at mcbehr.de
Mon Mar 2 22:03:59 CET 2015


Hmm. Das CLOCK_MONOTONIC_RAW habe ich bewusst gewählt.
Den Patch können wir so direkt nicht nehmen.
Wir müssen per cmake schauen, ob CL…_RAW verfügbar ist und falls nicht auf CLOCK_MONOTONIC zurückfallen.
Und auch das define netinet/in.h ist unter Linux nicht notwendig. Hier gleiches per cmake notwendig.

Lohnt aber nur, wenn du auch cmake nutzen kannst.

Für den Linker Fehler einfach src/api/Null.cpp dazu compilen/linken.


> Am 02.03.2015 um 07:07 schrieb Oliver Lehmann <lehmann at ans-netz.de>:
> 
> Hi,
> 
> Patch siehe Anhang. Bzgl. CLOCK_MONOTONIC bin ich mir unsicher.
> _RAW gibt es jedenfalls nicht unter FreeBSD.
> 
> Keiner Eine Idee zu meinen verbleibenden Linker-Fehlern?
> 
> Btw. habe configure+GNU make genutzt anstatt cmake.
> 
> Grüße
> Oliver
> 
> 
> Andreas Götz <cpuidle at gmail.com> wrote:
> 
>> Moin Oliver,
>> 
>>> Am 01.03.2015 um 00:46 schrieb Oliver Lehmann <lehmann at ans-netz.de>:
>>> 
>>> Hi,
>>> 
>>> ich versuche vzlogger unter FreeBSD zum laufen zu bewegen.
>>> 
>>> Nachdem ich ein paar Compilefehler in MeterD0.cpp bereinigt habe,
>> 
>> Was für Fehler sind das? Logfile? Wäre ja schön wenn wir die nachhaltig beseitigen könnten...
>> 
>> Viele Grüße, Andreas
>> 
>>> und das Makefile angepasst habe damit bei deaktiviertem SML auch
>>> wirklich keine SML relevanten Files gebaut werden, scheitert es
>>> nun am Linker:
>>> 
>>> - die ersten 2 sind simpel... ersetze ich durch "hugo" im File.
>>> - wahrscheinlich fehlt hier der git-replace beim checkout?
>>> - scheint in master.zip nicht statt zu finden...
>>> - CurlSessionProvider.cpp wird hier nicht compiliert.
>>> - habe es manuell unter src/ compiliert
>>> - ein include für <cerrno> fehlt (EAGAIN, ETIMEDOUT)
>>> - die Fehler in threads.cpp sind etwas strange...
>>> 
>>> gmake[2]: Entering directory '/root/vzlogger-master/src'
>>> g++48  -g -O2 -lpthread -lm -lstdc++ -ljson-c -L/usr/local/lib -lcurl    -o vzlogger vzlogger.o Channel.o Config_Options.o threads.o Buffer.o Meter.o ltqnorm.o Obis.o Options.o Reading.o exception.o local.o MeterMap.o MeterS0.o MeterD0.o MeterFluksoV2.o MeterFile.o MeterExec.o MeterRandom.o Volkszaehler.o MySmartGrid.o CurlIF.o CurlCallback.o CurlResponse.o  -L/usr/local/lib -lmicrohttpd   -lcrypto
>>> vzlogger.o: In function `config_parse_cli(int, char**, Config_Options*)':
>>> /root/vzlogger-master/src/vzlogger.cpp:283: undefined reference to `g_GIT_SHALONG'
>>> /root/vzlogger-master/src/vzlogger.cpp:284: undefined reference to `g_GIT_LAST_COMMIT_DATE'
>>> vzlogger.o: In function `main':
>>> /root/vzlogger-master/src/vzlogger.cpp:369: undefined reference to `CurlSessionProvider::CurlSessionProvider()'
>>> /root/vzlogger-master/src/vzlogger.cpp:369: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/vzlogger.cpp:471: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/vzlogger.cpp:472: undefined reference to `CurlSessionProvider::~CurlSessionProvider()'
>>> /root/vzlogger-master/src/vzlogger.cpp:473: undefined reference to `curlSessionProvider'
>>> threads.o: In function `logging_thread(void*)':
>>> /root/vzlogger-master/src/threads.cpp:199: undefined reference to `vz::api::Null::Null(std::tr1::shared_ptr<Channel>, std::list<Option, std::allocator<Option> >)'
>>> MeterMap.o: In function `MeterMap::registration()':
>>> /root/vzlogger-master/src/MeterMap.cpp:130: undefined reference to `vz::api::Null::Null(std::tr1::shared_ptr<Channel>, std::list<Option, std::allocator<Option> >)'
>>> Volkszaehler.o: In function `vz::api::Volkszaehler::send()':
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:114: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:114: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:114: undefined reference to `CurlSessionProvider::get_easy_session(std::string, int)'
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:140: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:141: undefined reference to `curlSessionProvider'
>>> /root/vzlogger-master/src/api/Volkszaehler.cpp:141: undefined reference to `CurlSessionProvider::return_session(std::string, void*&)'
>>> 
>>> 
>>> somit bleibt übrig:
>>> 
>>> g++48  -g -O2 -lpthread -lm -lstdc++ -ljson-c -L/usr/local/lib -lcurl    -o vzlogger vzlogger.o Channel.o Config_Options.o threads.o Buffer.o Meter.o ltqnorm.o Obis.o Options.o Reading.o exception.o local.o MeterMap.o MeterS0.o MeterD0.o MeterFluksoV2.o MeterFile.o MeterExec.o MeterRandom.o Volkszaehler.o MySmartGrid.o CurlIF.o CurlCallback.o CurlResponse.o CurlSessionProvider.o  -L/usr/local/lib -lmicrohttpd   -lcrypto
>>> threads.o: In function `logging_thread(void*)':
>>> /root/vzlogger-master/src/threads.cpp:199: undefined reference to `vz::api::Null::Null(std::tr1::shared_ptr<Channel>, std::list<Option, std::allocator<Option> >)'
>>> MeterMap.o: In function `MeterMap::registration()':
>>> /root/vzlogger-master/src/MeterMap.cpp:130: undefined reference to `vz::api::Null::Null(std::tr1::shared_ptr<Channel>, std::list<Option, std::allocator<Option> >)'
>>> collect2: error: ld returned 1 exit status
>>> Makefile:282: recipe for target 'vzlogger' failed
>>> gmake: *** [vzlogger] Error 1
>>> Exit 2
>>> 
>>> 
>>> Hilfe! ;)
>>> 
>>> Grüße, Oliver
> 
> 
> <MeterD0.cpp.patch>

Gruß

Matthias Behr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5256 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150302/ebc02873/attachment-0001.bin>


More information about the volkszaehler-users mailing list