[vz-users] vzlogger unter FreeBSD

Oliver Lehmann lehmann at ans-netz.de
Sun Mar 1 00:46:25 CET 2015


Hi,

ich versuche vzlogger unter FreeBSD zum laufen zu bewegen.

Nachdem ich ein paar Compilefehler in MeterD0.cpp bereinigt habe,
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


More information about the volkszaehler-users mailing list