C Arblib - larb konnte nicht gefunden werden

Zorkarak

Lt. Junior Grade
Registriert
Apr. 2015
Beiträge
423
Hallöle CB-Community!

Für ein Projekt in der Uni brauche ich die C-Bibliothek Arblib. Für Ubuntu 18.04 gibt es die Arblib als fertiges Paket mit dem Namen libflint-arb2, welches auch vernünftig installiert.

Wenn ich nun versuche, arb zu verwenden, findet er zwar die Header-Dateien - arb.h und flint.h werden problemlos eingebunden; die .h-Dateien liegen in /usr/include. Aber alle Funktionen, die in arb.h nur deklariert aber nicht definiert werden, werden als "undefined reference to function [...]" ausgegeben. (arb_init beispielsweise wird definiert und macht keine Probleme)

Auf der Website von Arblib steht, man solle mit der Option -larb kompilieren. Wenn ich gcc aber diese Option übergebe, krieg ich die Fehlermeldung "-larb could not be found". -lflint, -lgmp und -lmpfr machen alle keine Probleme, aber da sind ja die Funktionen auch nicht definiert; das nützt mir ihne -larb also nichts.

Hat sich schonmal jemand damit rumgeschlagen und kann mir womöglich helfen? Es ist sehr gut möglich, dass ich etwas total offensichtliches übersehen hab :D
 
Normalerweise macht man das mit pkg-config
Code:
gcc test.c -o test `pkg-config --cflags --libs arb`
und dir fehlt mögicherweise die *-dev Package, also noch ein sudo apt-get install libflint2-arb-dev, dann sollte alles da sein.

ABER: Ich habs kurz mal getestet, pkg-config wird nicht unterstützt... :( und die Lib heißt libflint-arb, also einfach ein -lflint-arb statt -larb, dann sollte es gehen.
 
  • Gefällt mir
Reaktionen: Zorkarak
Finde raus wo genau die libarb.so.* wohnt und füge den Ordner als Librarypfad deiner gcc Zeile als Parameter hinzu. Also z.B. -L/usr/lib/weiterer_pfad_zu_libarb
Vermutlich wohnt die libarb.so einfach woanders.
 
Hancock schrieb:
Und die Lib heißt libflint-arb, also einfach ein -lflint-arb statt -larb, dann sollte es gehen.

Ich glaube offensichtlicher hätte es kaum sein können 🤦 Aber jetzt funktioniert es immerhin. Ich übergebe -lflint-arb für die Funktionen von arb selbst und -lflint für die Abhängigkeiten zu flint. Die *-dev's hatte ich auch schon installiert.
Danke vielmals!
 

Ähnliche Themen

Zurück
Oben