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

Kai Krueger kai.krueger at itwm.fraunhofer.de
Fri Jan 11 09:21:31 CET 2013


Hallo,

> 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.
Danke, habe ich eben in den Source geaendert.

> 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?
Bei manchen Systemen scheint man diese Abhaengigkeit zusaetzlich angeben
zu muessen. Normalerweise loest cmake die mittels pkg-config auf, aber die
Tests fuer fuer die Libraries sind so geschrieben, dasz sie auch ohne
pkg-config laufen. Moeglich, dasz man da noch mal nacharbeiten muss.

Wenn du in src/CMakeLists.txt folgende Zeile hinzufuegst
 target_link_libraries(vzlogger dl)
sollte das Probleme behoben sein.
Analog fuer crypto



Viele Gruesse
Kai



More information about the volkszaehler-dev mailing list