Hallo Forum,

ich möchte gerne die libaqbanking in einem eigenen Programm verwenden. Im ersten Schritt habe ich versucht, eines der Beispiele für die Bibliothek zu übersetzen, bin daran aber leider schon gescheitert. Das Beispiel findet sich hier:
http://www.aqbanking.de/apidoc/d0/d7...TUTORIAL3.html

Ich habe den Quellcode einfach in ein Eclipse-Projekt rein kopiert und mal übersetzt. Das Kompilieren klappte noch, aber der Linker fand die ganzen Symbole nicht:

8<--------------------------------------------------------------------------------
**** Build of configuration Debug for project aqtest3 ****

make -k all
Building file: ../aqtest3.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"aqtest3.d" -MT"aqtest3.d" -o"aqtest3.o" "../aqtest3.c"
Finished building: ../aqtest3.c

Building target: aqtest3
Invoking: GCC C Linker
gcc -o"aqtest3" ./aqtest3.o
./aqtest3.o: In function `main':
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:43: undefined reference to `CBanking_new'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:44: undefined reference to `AB_Banking_Init'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:53: undefined reference to `AB_Banking_FindAccount'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:63: undefined reference to `AB_JobGetTransactions_new'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:71: undefined reference to `AB_Job_CheckAvailability'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:78: undefined reference to `AB_Banking_EnqueueJob'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:88: undefined reference to `AB_ImExporterContext_new'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:94: undefined reference to `AB_Banking_ExecuteQueueWithCtx'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:102: undefined reference to `AB_ImExporterContext_GetFirstAccountInfo'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:106: undefined reference to `AB_ImExporterAccountInfo_GetFirstTransaction'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:110: undefined reference to `AB_Transaction_GetValue'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:118: undefined reference to `AB_Transaction_GetPurpose'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:120: undefined reference to `GWEN_StringList_FirstString'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:124: undefined reference to `AB_Value_GetCurrency'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:124: undefined reference to `AB_Value_GetValue'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:129: undefined reference to `AB_ImExporterAccountInfo_GetNextTransaction'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:131: undefined reference to `AB_ImExporterContext_GetNextAccountInfo'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:135: undefined reference to `AB_Job_free'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:141: undefined reference to `AB_Banking_Fini'
/home/jan/eclipse-workspace/aqtest3/Debug/../aqtest3.c:146: undefined reference to `AB_Banking_free'
collect2: ld gab 1 als Ende-Status zurück
make: *** [aqtest3] Fehler 1
make: Das Target »all« wurde wegen Fehlern nicht aktualisiert.
Build complete for project aqtest3
-------------------------------------------------------------------------------->8

Irgendwie bin ich darauf gekommen irgendwo in den Projektoptionen ein Häkchen bei "-shared" zu setzen, so dass er wohl nach Shared Librarys sucht. Danach hat's mit dem Linken geklappt:

8<--------------------------------------------------------------------------------
**** Build of configuration Debug for project aqtest3 ****

make -k all
Building file: ../aqtest3.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"aqtest3.d" -MT"aqtest3.d" -o"aqtest3.o" "../aqtest3.c"
Finished building: ../aqtest3.c

Building target: aqtest3
Invoking: GCC C Linker
gcc -shared -o"aqtest3" ./aqtest3.o
Finished building target: aqtest3

Build complete for project aqtest3
-------------------------------------------------------------------------------->8

Wenn ich das Programm jetzt allerdings von Eclipse aus starte, passiert gar nichts. Beim Start von der Konsole aus, wird nur "Segmentation fault (core dumped)" ausgegeben. Gleiches passiert übrigens auch, wenn ich die Quelldatei komplett leer mache. Irgendwas ist also wohl an meinen Einstellungen faul.

Wie linkt man denn gegen eine Shared Library? Hab so was unter Linux noch nie gemacht. Irgendwo hier im Forum hab ich mal was mit dlopen() gesehen, aber das müsste doch dann auch in dem Beispielcode drin sein, oder?

Ich hoffe mir kann jemand helfen. Vielen Dank schon mal im Voraus!
Jan