Hallo, ich habe Probleme beim Linken von libftdi im Qt-Creator. Für eine RS485-Anbindung (Datenbus) über USB habe ich mit der libftdi-0.20 (C-Version) versucht, einige Daten auszutauschen. Jetzt möchte ich den "Transceiver" im Qt-Creator mit einbinden. Dazu habe ich die Projektdatei angepasst: LIBS += -L/usr/lib \ -lusb \ -L/usr/lib \ -llibftdi.la und versucht zu übersetzen, mit der Fehlermeldung: Führe Build-Schritte für Projekt ftdi aus... Konfiguration unverändert, überspringe QMake-Schritt. Starte: /usr/bin/make -w make: Gehe in Verzeichnis '/home/arboerner/qt++/ftdi' g++ -o ftdi rs485.o -L/usr/lib -L/usr/lib -lusb -llibftdi.la -lQtGui -lQtCore -lpthread /usr/bin/ld: cannot find -llibftdi.la collect2: ld returned 1 exit status make: Verlasse Verzeichnis '/home/arboerner/qt++/ftdi' make: *** [ftdi] Fehler 1 Beendet mit Rückgabewert 2. Fehler beim Erstellen des Projekts ftdi Beim Ausführen des Build-Schritts 'Make' Die libftdi.la ist in /usr/lib und in /usr/local/lib installiert. arboerner@arboerner-desktop:~$ cd /usr/lib/ arboerner@arboerner-desktop:/usr/lib$ ls -la |grep ftdi -rw-r--r-- 1 root root 60756 2012-10-09 12:25 libftdi.a -rw-r--r-- 1 root root 948 2012-10-09 12:26 libftdi.la -rw-r--r-- 1 root root 42686 2010-01-18 08:53 libftdipp.a -rw-r--r-- 1 root root 980 2010-01-18 08:53 libftdipp.la lrwxrwxrwx 1 root root 19 2012-10-09 09:36 libftdipp.so -> libftdipp.so.1.17.0 lrwxrwxrwx 1 root root 19 2012-10-09 09:36 libftdipp.so.1 -> libftdipp.so.1.17.0 -rw-r--r-- 1 root root 34472 2010-01-18 08:53 libftdipp.so.1.17.0 lrwxrwxrwx 1 root root 17 2012-10-09 09:36 libftdi.so -> libftdi.so.1.17.0 lrwxrwxrwx 1 root root 17 2012-10-09 09:36 libftdi.so.1 -> libftdi.so.1.17.0 -rw-r--r-- 1 root root 25980 2010-01-18 08:53 libftdi.so.1.17.0 -rwxr-xr-x 1 root root 61823 2012-10-09 12:31 libftdi.so.1.20.0 arboerner@arboerner-desktop:/usr/lib$ cd ../local/lib arboerner@arboerner-desktop:/usr/local/lib$ ls -la |grep ftdi -rw-r--r-- 1 root root 60756 2012-07-06 11:21 libftdi.a -rwxr-xr-x 1 root root 948 2012-07-06 11:21 libftdi.la lrwxrwxrwx 1 root root 17 2012-07-06 11:21 libftdi.so -> libftdi.so.1.20.0 lrwxrwxrwx 1 root root 17 2012-07-06 11:21 libftdi.so.1 -> libftdi.so.1.20.0 -rwxr-xr-x 1 root root 61345 2012-07-06 10:06 libftdi.so.1.18.0 -rwxr-xr-x 1 root root 61653 2012-07-06 10:09 libftdi.so.1.19.0 -rwxr-xr-x 1 root root 61823 2012-07-06 11:21 libftdi.so.1.20.0 arboerner@arboerner-desktop:/usr/local/lib$ Vielleicht hatte von euch schon einmal das gleiche Problem und kennt eine Lösung. Danke schon jetzt im voraus.
Die ".la"-Files sind für "libtool", bei qmake brauchst du die IIRC nicht. Also direkt das ".so"-File verwenden, und da brauchst du die extension nicht. Und das "lib" am Anfang macht der Linker selber dazu, also "-lftdi" reicht. Und einmal "-L/usr/lib" reicht auch. Eigentlich sollte man es garnicht benötigen, da default-Pfad... d.H. LIBS += -lusb -lftdi oder LIBS += -L/usr/local/lib -lusb -lftdi und fertig. :)
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.