Frage zu gcc

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi

    Möchte mein PiFace Digital 2 in C ansprechen und habe die entsprechende Lib's

    installiert.

    http://piface.github.io/libpifacedigital/

    Es ist mir auch gelungen die example.c zu compilieren. Leider funktioniert das ganze

    nur im Path: libpifacedigital

    Wie kann ich das ganze Systemweit "registrieren", so das die Compilierung überall gelingt?

    Sorry wenn das eine einfache Frage ist, ich habe auch schon sehr viel gegoogelt, aber ich komme

    so nicht weiter.

    Danke!

  • Leider funktioniert das ganze

    nur im Path: libpifacedigital

    Was genau meinst Du? Das Ausführen des binary oder das kompilieren?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Was genau meinst Du? Das Ausführen des binary oder das kompilieren?

    Das kompilieren! Wollte versuchen mit VisualGDB zu arbeiten. Hiermit gelingen mir einfache C-Programme. Die zusätzliche PiFace-Library (oder andere) einzubinden ist mir jedoch nicht gelungen. Sie sollten irgendwie in usr/local untergebracht werden. Aber die Librarys müssen auch registriert werden. Wenn ich das richtig verstanden habe....

  • Die zusätzliche PiFace-Library (oder andere) einzubinden ist mir jedoch nicht gelungen.

    Naja, dann hat es doch mit dem Ausführen (des kompilierten binary) was zu tun. Den Pfad für die runtime libraries kannst Du z. B. mit "rpath" (oder gleichwertig) hinzufügen.

    Siehe z. B. die Ausgaben von:

    Code
    man ld | fgrep -iA 5 -e rpath

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ok, musste mich etwas in statische und dynamische Librarys einarbeiten. Wenn ich das richtig verstehe, müssen statische *.a wie die C-Library vom PifaceDigital2 nur zur kompilierzeit im Erstellungsordner vorhanden sein. Dynamische Librarys sind nachher Teil der Binary und müssen auf dem System vorhanden sein.

    Per Befehszeile bekomme ich das schon hin. Da ich aber auf Dauer nicht mit antiquierten Befehlszeilen, sondern unter VS2017/VisualGDB arbeiten will, gehört das in das VisualGDB-Forum.

  • ... nicht mit antiquierten Befehlszeilen, ...

    BTW: Die Befehlszeilen sind hier keineswegs bzw. nicht im Geringsten antiquiert.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Libraries kann man bei VS2017 wie folgt mitgeben:

    "Project/Properties/Linker/Input" dort in der Zeile "Library Dependencies"

    für mathlib reicht ein "m"

    Nehmen wir an, Deine Library hieße librt.a

    gcc geht davon aus, dass jede Library mit lib... anfängt, deshalb muss man es fortlassen.

    Wenn Du z.B. die Mathe-Library und die Library librt.a einbinden willst, gehört in die Zeile "Library Dependencies"

    m;rt

    librt.a muss natürlich in dem Verzeichnis liegen, wo die anderen libs auch liegen.

    Alles klar ?

    Gruß Prittzl

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!