Hi,
ich habe schon ein bisschen danach gegoogelt, komme aber auch da nicht weiter.
Ich habe eine ssh-Bibliothek heruntergeladen, die ich für die Verwendung in meinem Code brauche. Da dieser Code auf einer embedded Platform unter einer anderen Unix-Variante laufen soll, müsste diese Bibliothek mit einem Cross-Compile übersetzt werden.
Die Makefiles sollen laut README der Bibliothek mit CMake erstellt werden, also habe ich mich im Internet ein bisschen schlau gemacht, wie ich das anzugeben habe und bin zu folgendem Toolchain-File gelangt:
bei einem cmake -DCMAKE_TOOLCHAIN_FILE=./Toolchain-Syscon.cmake .. führt cmake aber Bibliotheken /usr/lib/libz.o, /usr/lib/libssl.so und /usr/lib/libcrypto.so auf, obwohl entsprechende Bibliotheken für die Target-Platform in /usr/local/ELDK-4.2/ppc_85xxDP/usr/lib vorhanden sind, und wenn ich trotz diesr Ausgabe hinterher ein make aufrufe, scheitert das Linken weil libssl.so behauptet weitere Dateien zu brauchen (z.B. libdl.so.2), die aber alle im CMAKE_FIND_ROOT_PATH vorhanden sind. Auch hier führt make zunächst auf, dass die Bibliotheken /usr/lib/libz.so gefunden wurden, er scheint aber zumindest die richtige zu benutzen, da die Fehlermeldungen beim Linken /usr/local/ELDK-4.2/usr/../ppc_85xxDP/usr/lib/libssl.so: undefined reference to ... heißt.
Irgendwie scheint also CMake die Verwendung dieses Bibliotheksverzeichnis nicht korrekt umzusetzen, ich habe aber keine Ahnung was ich dann wo einsetzen muss, und von meinen Kollegen scheint sich auch niemand mit CMake auszukennen, deshalb wolte ichmal hier fragen, wie ich die Bibliothek nun so übersetzen kann, dass ich sie auf meiner embedded platform nutzen kann.
Hoffe jemand kann helfen
Martin Dietz
ich habe schon ein bisschen danach gegoogelt, komme aber auch da nicht weiter.
Ich habe eine ssh-Bibliothek heruntergeladen, die ich für die Verwendung in meinem Code brauche. Da dieser Code auf einer embedded Platform unter einer anderen Unix-Variante laufen soll, müsste diese Bibliothek mit einem Cross-Compile übersetzt werden.
Die Makefiles sollen laut README der Bibliothek mit CMake erstellt werden, also habe ich mich im Internet ein bisschen schlau gemacht, wie ich das anzugeben habe und bin zu folgendem Toolchain-File gelangt:
Code:
SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_INSTALL_PREFIX /home/martin/Syscon3/system/src/libssh/build/install) SET(CMAKE_BUILD_TYPE Debug) SET(CMAKE_C_COMPILER /usr/local/ELDK-4.2/usr/bin/ppc_85xxDP-gcc) SET(CMAKE_CXX_COMPILER /usr/local/ELDK-4.2/usr/bin/ppc_85xxDP-g++) SET(CMAKE_FIND_ROOT_PATH /usr/local/ELDK-4.2/ppc_85xxDP/usr/lib) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
Irgendwie scheint also CMake die Verwendung dieses Bibliotheksverzeichnis nicht korrekt umzusetzen, ich habe aber keine Ahnung was ich dann wo einsetzen muss, und von meinen Kollegen scheint sich auch niemand mit CMake auszukennen, deshalb wolte ichmal hier fragen, wie ich die Bibliothek nun so übersetzen kann, dass ich sie auf meiner embedded platform nutzen kann.
Hoffe jemand kann helfen
Martin Dietz
Comment