C++ REST client Library (Linux aarch64) Verständnis Problem



  • Nein für die verwendung brauchst du die "dev" pakete nicht.
    Wenn du das curl paket installierst werden nur die binaries installiert um das programm nutzen zu können.
    Aber nicht die developer files (wie header und co) um ein programm zu bauen, welches libcurl verwendet



  • @SoIntMan sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    @firefly sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    Du must auch die entsprechenden "dev" packete installieren.

    hab ich , sonst würde Curl nicht funktionieren!?.. hmmm oder soll ich explizt das dev von der curl download page nochmal installieren,!?

    Welche Linux Distro hast du? Warum nutzt du nicht den package Manager?



  • @Leon0402 sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    Welche Linux Distro hast du? Warum nutzt du nicht den package Manager?

    verwendet Ubuntu 18.04 -... hier bekomm ich auch nur cmake 3.10.2...

    verwendet atp als pacakge manager

    EDIT :

    sick@ubuntu:~$ sudo apt-get install -y libcurl-dev
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    Paket libcurl-dev ist ein virtuelles Paket, das bereitgestellt wird von:
      libcurl4-openssl-dev 7.58.0-2ubuntu3.16
      libcurl4-nss-dev 7.58.0-2ubuntu3.16
      libcurl4-gnutls-dev 7.58.0-2ubuntu3.16
    Sie sollten eines explizit zum Installieren auswählen.
    
    E: Für Paket »libcurl-dev« existiert kein Installationskandidat.
    sick@ubuntu:~$ ^C
    sick@ubuntu:~$
    

    bin mir oft nich sicher was ich da mache.. aber das klappte auch nich



  • Hast du die Meldung gelesen? Du sollst eins explizit auswählen (ich nutze das letzte "libcurl4-gnutls-dev").



  • @Jockelx sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    Hast du die Meldung gelesen? Du sollst eins explizit auswählen (ich nutze das letzte "libcurl4-gnutls-dev").

    ja sorry das hab ich dann auch so gemacht:)

    sudo apt-get install -y libcurl4-gnutls-dev
    

    dann hat er was installiert...

    und mit meinen begrenzten linux kenntnisse mal dann das gemacht

    sudo apt-cache show curl
    

    damit müsste er mir doch zeigen was er alles im packagemanager an libs mit den name curl hat:

    Package: curl
    Architecture: amd64
    Version: 7.58.0-2ubuntu3.16
    Multi-Arch: foreign
    Priority: optional
    Section: web
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Alessandro Ghedini <ghedo@debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 388
    Depends: libc6 (>= 2.17), libcurl4 (= 7.58.0-2ubuntu3.16), zlib1g (>= 1:1.1.4)
    Filename: pool/main/c/curl/curl_7.58.0-2ubuntu3.16_amd64.deb
    Size: 158796
    MD5sum: e5df9d6d7dc54ec5e638590d284fe352
    SHA1: 7e182b6ae08d60b324fca717345579113105aaf6
    SHA256: 50bfe5c8151aa26d0d096166765fceaba1f6044614d343e0d89fc31222b6a5be
    SHA512: 55a49db12b720402b91f71e248664763b5fe573147bce7ea891b735a4513b60a3830c00571c435ffc80339f340cdb615d79705fa0bdf39bced48946189dc697f
    Homepage: http://curl.haxx.se
    Description-de: Befehlszeilenwerkzeug zur Dateiübertragung mit URL-Syntax
     curl ist ein Befehlszeilenwerkzeug zur Dateiübertragung mit URL-Syntax. Es
     unterstützt DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP,
     LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET und TFTP.
     .
     curl unterstützt SSL-Zertifikate, HTTP POST, HTTP PUT, Hochladen zu FTP,
     Hochladen von HTTP-Formularen, Proxys, Cookies, Benutzerauthentifizierung
     mit Name und Passwort (einfach, verschlüsselt (Digest), NTLM, Negotiate,
     Kerberos), Wiederaufnahme von Dateiübertragungen, tunneln von HTTP-Proxys
     und jede Menge weitere nützliche Tricks.
    Description-md5: f83293d10df083ae6f7bb7d01642913c
    Task: cloud-image, server, ubuntu-budgie-desktop
    Supported: 5y
    
    Package: curl
    Architecture: amd64
    Version: 7.58.0-2ubuntu3
    Multi-Arch: foreign
    Priority: optional
    Section: web
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Alessandro Ghedini <ghedo@debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 386
    Depends: libc6 (>= 2.17), libcurl4 (= 7.58.0-2ubuntu3), zlib1g (>= 1:1.1.4)
    Filename: pool/main/c/curl/curl_7.58.0-2ubuntu3_amd64.deb
    Size: 158884
    MD5sum: 43f1eab4dcfdaab2d4b9f8ade5b5c58e
    SHA1: 5878faa881e0b475d3a6870b47423b0f0304a530
    SHA256: 02c53c28334b2c6b1aa9643ae585744ee90ce113fbb7699f9607e38e82b9d526
    Homepage: http://curl.haxx.se
    Description-de: Befehlszeilenwerkzeug zur Dateiübertragung mit URL-Syntax
     curl ist ein Befehlszeilenwerkzeug zur Dateiübertragung mit URL-Syntax. Es
     unterstützt DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP,
     LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET und TFTP.
     .
     curl unterstützt SSL-Zertifikate, HTTP POST, HTTP PUT, Hochladen zu FTP,
     Hochladen von HTTP-Formularen, Proxys, Cookies, Benutzerauthentifizierung
     mit Name und Passwort (einfach, verschlüsselt (Digest), NTLM, Negotiate,
     Kerberos), Wiederaufnahme von Dateiübertragungen, tunneln von HTTP-Proxys
     und jede Menge weitere nützliche Tricks.
    Description-md5: f83293d10df083ae6f7bb7d01642913c
    Task: cloud-image, server, ubuntu-budgie-desktop
    Supported: 5y
    

    aber das is die command-curl anwendung ode !? (die verwendet libcurl we ich sehe? aber wie finde ich die, bzw.
    we referenzier ich mich mit cmake auf die libcurl (die irgendwo sein muss!?!)

    wenn ich dann dann das dateilsystem mach "curl" suche (k.a. ob das so richtig is):

    find ./ -name *curl*
    

    komm das

    ./cmake-3.20.0/Utilities/cmcurl
    ./cmake-3.20.0/Utilities/cmcurl/include/curl
    ./cmake-3.20.0/Utilities/cmcurl/include/curl/curlver.h
    ./cmake-3.20.0/Utilities/cmcurl/include/curl/curl.h
    ./cmake-3.20.0/Utilities/cmcurl/CMake/curl-config.cmake.in
    ./cmake-3.20.0/Utilities/cmcurl/curltest.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_gethostname.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_des.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_gssapi.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_printf.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/libcurl.rc
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_setup.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ntlm_core.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_sspi.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_base64.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_multibyte.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_range.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ntlm_wb.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_get_line.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_threads.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_addrinfo.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/libcmcurl.a
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_config.h.cmake
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_path.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_threads.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_config.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_gssapi.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_multibyte.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curlx.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ntlm_wb.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_fnmatch.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_memrchr.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_addrinfo.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_memory.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_sha256.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_range.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_rtmp.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ctype.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_endian.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ctype.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_md4.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_sspi.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_fnmatch.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ntlm_core.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_setup_once.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_rtmp.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_hmac.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_gethostname.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_get_line.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_endian.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_sasl.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_krb5.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_sasl.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_md5.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_path.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_sspi.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_fnmatch.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_path.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_threads.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_rtmp.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_threads.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_gethostname.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_multibyte.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ntlm_core.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ctype.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_sspi.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_sasl.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_des.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_memrchr.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_gssapi.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_addrinfo.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_memrchr.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_endian.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_addrinfo.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_gssapi.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_get_line.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_get_line.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ntlm_wb.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_fnmatch.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_range.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_rtmp.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ctype.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_des.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ntlm_core.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_sasl.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_multibyte.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_gethostname.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_range.c.o.d
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_ntlm_wb.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/CMakeFiles/cmcurl.dir/curl_endian.c.o
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_des.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_ldap.h
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_path.c
    ./cmake-3.20.0/Utilities/cmcurl/lib/curl_memrchr.h
    ./cmake-3.20.0/Utilities/cmcurl/curltest
    ./cmake-3.20.0/Utilities/cmcurl/CMakeFiles/curltest.dir
    ./cmake-3.20.0/Utilities/cmcurl/CMakeFiles/curltest.dir/curltest.c.o
    ./cmake-3.20.0/Utilities/cmcurl/CMakeFiles/curltest.dir/curltest.c.o.d
    ./cmake-3.20.0/Utilities/Scripts/update-curl.bash
    ./cmake-3.20.0/Utilities/cm3p/curl
    ./cmake-3.20.0/Utilities/cm3p/curl/curl.h
    

    leider keine lib files von libcurl 😞



  • @SoIntMan sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    wenn ich dann dann das dateilsystem mach "curl" suche (k.a. ob das so richtig is):
    find ./ -name curl

    Und von welchem verzeichnis aus hast du das gemacht? -> Sieht so aus als wärst du in deinem home verzeichnis und suchst nur in dem.

    Probier mal:

    find /usr/ -name *curl*
    

    Das liefert u.a. bei mir:

    /usr/lib/libcurl.so
    /usr/lib/libcurl.so.4
    /usr/lib/libcurl.so.4.7.0
    /usr/bin/curl
    /usr/include/curl
    /usr/include/curl/curl.h
    /usr/include/curl/curlver.h
    

    Also sprich shared library, curl binary für die konsole und include verzeichnisse.

    Gibt dir CMake denn immer noch den selben Fehler? Hat sich irgendwas geänder? (Sagt er immer noch missing CURL_LIBRARY und CURL_INCLUDE_DIR?)



  • @Leon0402 sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    Und von welchem verzeichnis aus hast du das gemacht? -> Sieht so aus als wärst du in deinem home verzeichnis und suchst nur in dem.

    Aha ok:

    /usr/include/x86_64-linux-gnu/curl
    /usr/include/x86_64-linux-gnu/curl/curlver.h
    /usr/include/x86_64-linux-gnu/curl/curl.h
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.a
    /usr/lib/x86_64-linux-gnu/libcurl.so
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so
    /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.5.0
    /usr/lib/x86_64-linux-gnu/pkgconfig/libcurl.pc
    /usr/lib/x86_64-linux-gnu/libcurl.so.4
    /usr/lib/x86_64-linux-gnu/libcurl.la
    /usr/lib/x86_64-linux-gnu/libcurl.a
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
    /usr/lib/x86_64-linux-gnu/libcurl-gnutls.la
    /usr/lib/python3.6/macurl2path.py
    /usr/lib/python3.6/__pycache__/macurl2path.cpython-36.pyc
    /usr/lib/python2.7/macurl2path.py
    /usr/lib/python2.7/macurl2path.pyc
    /usr/bin/curl
    /usr/bin/curl-config
    /usr/share/aclocal/libcurl.m4
    /usr/share/lintian/overrides/libcurl3-gnutls
    /usr/share/bash-completion/completions/curl
    /usr/share/zsh/vendor-completions/_curl
    /usr/share/man/man1/curl.1.gz
    /usr/share/man/man1/curl-config.1.gz
    /usr/share/doc/curl
    /usr/share/doc/libcurl4
    /usr/share/doc/libcurl3-gnutls
    /usr/share/doc/libcurl4-gnutls-dev
    

    jetzt müste ich ja die "/usr/lib/x86_64-linux-gnu/libcurl.so" mit Add_library in cmakelist einfügen können!?

    Aber du meintest das "statiche" einbinden von a oder so files in die cmakelist is nicht ok!?

    EDIT:

    ok

    /usr/include/x86_64-linux-gnu/curl
    /usr/include/x86_64-linux-gnu/curl/curlver.h
    /usr/include/x86_64-linux-gnu/curl/curl.h
    

    oder das sind die header für mein Host linux,

    ich kompiliere code für ein linux sub-system für arm64. d.h. ich muss die libcurl arm64 für das sub-system installieren... hmm.. oh jesus:09



  • @SoIntMan sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    ich kompiliere code für ein linux sub-system für arm64. d.h. ich muss die libcurl arm64 für das sub-system installieren... hmm.. oh jesus:09

    Dann musst du dich mit cross compiling und dem setup der entsprechenden dependencies beschäftigen.
    Oder du verwendest zum bauen direkt ein ARM64 system mit linux



  • @SoIntMan sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    jetzt müste ich ja die "/usr/lib/x86_64-linux-gnu/libcurl.so" mit Add_library in cmakelist einfügen können!?
    Aber du meintest das "statiche" einbinden von a oder so files in die cmakelist is nicht ok!?

    Irgendwie nervt es mich etwas mich widerholen zu müssen. Wenn irgendwas unklar an meinem Post oben war, in dem ich erklärt habe, warum man eher mit CMake Targets arbeiten sollte, dann stell gerne Fragen.
    Aber ich weiß nicht, was ich auf "?!" antworten soll.

    @SoIntMan sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    ich kompiliere code für ein linux sub-system für arm64. d.h. ich muss die libcurl arm64 für das sub-system installieren... hmm.. oh jesus:09

    Das wäre vlt. durchaus eine relevante Info gewesen. Ja das nennt sich cross compiling. Dein Stichwort für cmake sind hier Toolchains:
    https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux

    Du musst dann halt CMake sagen, wo er die sachen für dein Zielsystem findet und Compiler, Library Pfade etc. mit den entsprechenden cmake variablen setzen.



  • @Leon0402 sagte in C++ REST client Library (Linux aarch64) Verständnis Problem:

    rgendwie nervt es mich etwas mich widerholen zu müssen. Wenn irgendwas unklar an meinem Post oben war, in dem ich erklärt habe, warum man eher mit CMake Targets arbeiten sollte, dann stell gerne Fragen.
    Aber ich weiß nicht, was ich auf "?!" antworten soll.

    Ja hast recht, ich stell mich gerade blöd an.. sorry.

    ich werde mich da jetzt erst mal intensiv beschäftigen, und frage dann konkret:)

    Danke euch für die Hilfe


Log in to reply