Hallo zusammen, ich habe ein usb-modul mit dem ft245rl entwickelt und will dieses nun mit c oder c++ ansteuern. Deshalb installierte ich den Dev C++ Compiler und erstellte ein kleines Testprogramm so wie es in den, von FTDI zur Verfügung gestellten, Beispielen in C++ zu sehen ist. Beim Compilieren erscheint dann aber immer die selbe Fehlermeldung: undefinied reference to _imp__FT_GetLibraryVersion@4 was hat dieser Fehler zu bedeuten und wie kann ich ihn beheben? Vielen Dank im Voraus! Gruss, Patrick
Das bedeutet, daß Du die zur FT2XXX.DLL gehörende Importlibrary linken musst.
Danke für die schnelle Antwort! Ehm ok, aber wie mache ich das genau? Also ich verwende folgende Files in meinem Projekt: ftd2xx.h FTChipID.h stdio.h windows.h was muss ich jetzt noch genau machen? Ich bin noch ein totaler Anfänger in der USB-Programmierung
Das reicht nicht, Du verwendest Funktionen, die in der DLL enthalten sind. Um die aufrufen zu können, wird eine sogenannte Importlibrary verwendet - das ist eine Library, die "von außen" aussieht wie eine statische Library, aber statt vollständiger Funktionen nur eine Sprungtabelle enthält, die vom Programmlader des Betriebssystemen mit Aufrufen der entsprechenden Funktionen in der DLL ersetzt wird. Wie Libraries zu verwenden sind, solltest Du der Dokumentation Deines Compilers entnehmen können. Das Thema Importlibrary wurde kürzlich hier ausdiskutiert, vielleicht kannst Du da ja die eine oder andere Erkenntnis gewinnen: Beitrag "C++ QT Creater FTD2xx.lib einbinden"
hmm ok, aber irgendwie kriege ich das mit LIBS += c:/ nicht hin. Ich weiss nicht in welchem File ich diese Zeilen für die Verlinkung hinschreiben muss. Kannst du mir da evtl. weiterhelfen? Ein kleines Codebeispiel, das funktionieren müsste, wäre echt super
Kann ich Dir nicht bieten, da ich Deinen Compiler nicht verwende. Die Angabe gehört ins makefile. Wie wäre es, mal die Dokumentation Deines Compilers zu studieren?
Vielen Dank! Das hilft mir fürs Erste weiter. Hoffentlich funktionierts jetzt! Gruss, Patrick
Geschafft! Ich kann nun die Libraries linken. Doch kaum ist das eine Problem gelöst, kommt schon das Nächste: Ich will unter Anderem die Funktion FT_GetLibraryVersion() aufrufen. Beim Compilieren erscheint kein Fehler und mein Konsole-Fenster öffnet sich. Doch dann erscheint immer wieder die Meldung, dass meine EXE ein Problem festgestellt hat und beendet werden muss! Dieses Meldung kommt auch bei den meisten anderen Funktionen. Was mache ich falsch? Gruss, Patrick
> Was mache ich falsch?
Irgendwas. Lass doch mal Dein Programm im Debugger laufen.
Habs Geschafft! Ich habe die Variable für die Übergabe der Daten falsch benannt Gruss, Patrick
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.