Pylon Lib in Projekt einbinden
lima-city → Forum → Programmiersprachen → C/C++ und D
bibliothek
code
echt danke
enden
ersten erfolge
file
header
helfen
jemand
kamera
krieg
laden
linken code
option
ordner
pfad
problem
setzen
test
verzeichnis
-
Heyho
Ich hab mal ne Frage. Es ist das erste mal, dass ich mit einer externen Lib arbeite (außer Qt), und muss nun Pylon integrieren. Nun steh ich auf dem Schlauch ich weiß nicht wie soetwas geht...
Meine Tools:
- Pylon installiert nach /opt/pylon
- QtCreator aktuellste Version
- Ubuntu 12.04
Die Kamera läuft mit den Pylon eigenen Tools.
Ich möchte das ganz gerne auch so halten, dass die Libs usw aus dem /opt/pylon Ordner genommen werden, da ich Momentan nur einen Prototyp schreibe, welcher in ein anderes Projekt migriert, und dieses soll nicht mit dem reinkopieren von den h Files sein.
Wie kann ich dem Compiler also klar machen, dass er auch die Files aus dem Ordner /opt/pylon/include laden kann (da sind die Header Files). Kann mir da jemand helfen? :-S
Und in dem Zusammenhanh: Wie erkenne ich Lib Files? 0.0
Liebe Grüße
Beitrag zuletzt geändert: 19.5.2012 18:17:15 von ggamee -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo ggamee,
da Du unter Linux arbeitest gehe ich mal davon aus, dass Du mit gcc kompilierst.
Wenn Du einen Pfad als Suchpfad für Includes hinzufügen willst, dann kannst Du das mit der Option '-I' machen. Also z.B. so:
Eine Bibliothek gegen die Du linken kannst sollte im allgemeinen mit 'lib' anfangen und auf '.a' enden. Evtl. gibt es ja ein Verzeichnis /opt/pylon/lib in der eine Datei 'libpylon.a' liegt. Dann könntest Du mit folgendem Befehl linken:gcc -I/opt/pylon/include -c test.c
Die Option '-L' fügt ähnlich den Includes einen Suchpfad für Bibliotheken hinzu. Die Option '-l' gibt den Namen der zu suchenden Bibliothek an, wobei das 'lib' am Anfang und das '.a' am Ende weggelassen wird.gcc -L/opt/pylon/lib -lpylon test.o -o test
-
Ganz vergessen:
Pylon ist eine Software, um GigE-Kameras von Basler anzusteuern. Hier zu finden: http://www.baslerweb.com/MV_Customer_Service_Downloads_SW_Seite-18498.html
Falls jemand sich des mal anschauen will, wie des aussieht, und das helfen würde bzw kann, das Problem genauer zu lösen. Dort findet man auch einen Installationsguide, der mir recht wenig hilft.
Aber des hilft mir schonmal, denn die -L und -I Option des Makefile hab ich heut Nacht irgendwo gelesen gehabt.
Ein Problem habe ich in dem Zusammenhang noch: Muss ich EINE Lib angeben, oder kann ich das -l auch weglassen, um alle zu laden, die in der directory sind? Denn des sind in meinem Fall *.so Datein, und davon fast 20, und das nur in einem Ordner (insgesamt sind es 3 Ordner die eingebunden werden sollen).
Ansonsten glaube ich, krieg ich das soweit zum laufen. Ich habe immerhin schon die ersten Erfolge, und habe es geschaft, eine externe Headerdatei einzubinden :)
Liebe Grüße -
Hallo ggamee,
ich habe jetzt mal reingeschaut (und nebenbei gelernt, dass gcc Shared Object Files (*.so) auch ohne .a-File linken kann) und würde sagen, dass Du es so machen kannst:
Kompilieren:
gcc -I/opt/pylon/include -DUSE_GIGE -c test.c
Linken:
gcc -L/opt/pylon/lib -lpylonbase test.o -o test
Ich habe ein bisschen in den Beispiel Makefiles gewühlt und gesehen, dass die meistens nur libpylonbase.so verlinken. Also hoffe ich mal, dass das reicht. -
Ich bin dir sehr Dankbar, es läuft jetzt alles soweit wie es soll :)
Ich habe es hingekriegt den LP_LIBRARY_PATH für die executable nachher zu setzen, und habe es hingekriegt, alle nötigen Libs für die Kompilierung zusammen zu kriegen. Es war leider nicht nur die eine, es waren noch einige mehr, was man auch erstmal wissen muss.
Der Wrapper ist btw nun sogut wie fertig. Gestern habe ich schon Bilder aufgenommen, heute habe ich die ganze Konfigurationsschnittstelle gebaut, alles nochmal umgebaut, und werde nun schauen, wie weit das noch funktioniert. Dann kommt noch aufräumen, refactoring und dokumentieren dran, dann eine Portablitätsprobe (ob das auf dem Zielsystem läuft), und dann kann es wohl schon bald übergeben werden :)
Echt danke! Das hat mir sehr geholfen!
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage