[vz-dev] Probleme beim Kompilieren des C++-Ports von vzlogger

Alexander Klauer Alexander.Klauer at itwm.fraunhofer.de
Thu Jan 10 15:35:01 CET 2013


Hallo,

On 01/10/2013 03:10 PM, Dimitrios Bogiatzoules wrote:
> Hallo zusammen,
>
> wenn ich nach Wiki vorgehe dann komme ich ohne Probleme bis zum make:
>
> # git clone https://github.com/mysmartgrid/vzlogger.git
> # cd vzlogger && git checkout c++-port
> # mkdir -p build && cd build && cmake ../../vzlogger
>
> Rufe ich make auf, so werden alle Object-Dateien bis auf
> Volkszaehler.cpp.o und MySmartGrid.cpp.o erzeugt. Die beide werden mit
>
> error: ‘sleep’ was not declared in this scope
>
> abgebrochen, was sich aber durch Ergänzung beider Quelltexte mit
>
> #include <unistd.h>
>
> beheben lässt.
>
> Irgendwann versucht der Linker das binary vzlogger zu erzeugen, bricht
> aber mit
>
> Linking CXX executable vzlogger
> /usr/bin/ld:
> /usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.7.2/../../../libcrypto.a(dso_dlfcn.o):
> undefined reference to symbol 'dlsym@@GLIBC_2.4'
> /usr/bin/ld: note: 'dlsym@@GLIBC_2.4' is defined in DSO
> /usr/lib/libdl.so.2 so try adding it to the linker command line
> /usr/lib/libdl.so.2: could not read symbols: Invalid operation
> collect2: error: ld returned 1 exit status
> make[2]: *** [src/vzlogger] Error 1
> make[1]: *** [src/CMakeFiles/vzlogger.dir/all] Error 2
> make: *** [all] Error 2
>
> ab.
>
> libdl.so.2 ist vorhanden:
>
> -rwxr-xr-x 1 root root 9804 Dec 31 07:14 /usr/lib/libdl-2.17.so
> -rw-r--r-- 1 root root 8862 Dec 31 07:14 /usr/lib/libdl.a
> lrwxrwxrwx 1 root root   10 Dec 31 07:13 /usr/lib/libdl.so -> libdl.so.2
> lrwxrwxrwx 1 root root   13 Dec 31 07:14 /usr/lib/libdl.so.2 ->
> libdl-2.17.so
>
> libcrypto.a ebenfalls:
>
> -rw-r--r-- 1 root root 2655520 May 12  2012 /usr/lib/libcrypto.a
> lrwxrwxrwx 1 root root      18 May 12  2012 /usr/lib/libcrypto.so ->
> libcrypto.so.1.0.0
> -r-xr-xr-x 1 root root 1736229 May 12  2012 /usr/lib/libcrypto.so.1.0.0
>
> Hat mir jemand einen Tipp an was es liegen könnte?
>
>
Ich erinnere mich dunkel, dass die Reihenfolge der Bibliotheken irgendwo 
falsch war. Probier mal


--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -12,7 +12,6 @@ vzlogger_SOURCES = vzlogger.cpp Channel.cpp 
Config_Options.cpp threads.cpp Buffe
  vzlogger_SOURCES += Meter.cpp ltqnorm.cpp Obis.cpp Options.cpp Reading.cpp
  vzlogger_SOURCES += exception.cpp local.cpp MeterMap.cpp

-
  # Protocols (add your own here)
  vzlogger_SOURCES += \
         protocols/MeterS0.cpp \
@@ -31,8 +30,8 @@ vzlogger_SOURCES += \
         api/CurlCallback.cpp \
         api/CurlResponse.cpp

-vzlogger_LDADD =
-vzlogger_LDFLAGS = -lpthread -lm -lstdc++ $(DEPS_VZ_LIBS)
+vzlogger_LDADD = $(DEPS_VZ_LIBS) -lpthread -lm -lstdc++
+vzlogger_LDFLAGS =


Alternativ kannst Du natürlich auch mal meinen fork ausprobieren:

https://github.com/TheCount/vzlogger/tree/develop

Ein Problem mit dem Fork ist derzeit noch, dass Du eine aktualisierte 
Version von json-c brauchst:

https://github.com/TheCount/json-c/tree/develop-debianised

Beides kannst Du mit dpkg-builpackage -b zu einem Debian-Paket 
zusammenbauen.


Viele Grüße

Alexander


More information about the volkszaehler-dev mailing list