Eclipse-Anfänger-Problem

swengineer

Grünschnabel
Hallo,

ich möchte mit Eclipse Gallileo für C/C++ den Source Code einer USB-Driver-API (mpusbapi) neu kombilieren.

Beim Kompilieren erhalte ich folgende Fehlermeldung:

C:\Programme\mingw\bin\...\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmpusbapi.lib

Diese Fehlermeldung kommt für mich sehr unerwartet, da ich im Dialog

Properties -> C/C++ Build -> Settings -> Tool Settings -> MinGW C++ Linker -> Libraries

sowohl die Library "mpusbapi.lib" angegeben habe, als auch den Pfad in dem sich die "mpusbapi.lib" befindet.

Was habe habe ich falsch gemacht bzw. vergessen ?

Würde mich über eine Hilffestellung sehr freuen.

Grüße
 
Hi.

Der GCC erwartet, dass die Datei den Namen "libmpusbapi.lib" (oder Endung .a) hat.

Du könntest die Datei unter MinGW C Linker -> Miscalleneous Other objects angeben. (Komplett mit Pfad).

Oder du kopierst die Datei mpusbapi.lib nach libmpusbapi.lib.

Gruß
 
Hallo,

vielen Dank für deine Hilfestellung.

Ich habe folgende Änderungen vorgenommen:

  1. Ich habe unter Libraries die "Library (-l)" und den "Library Search Path (-L)" entfernt.
  2. Unter "Miscellaneous" habe ich den absoluten Pfad der mpusbapi.lib (inklusive dem Dateinamen) als "Other Object" hinzugefügt.

Jetzt erhalte ich beim Build des Projekts leider folgende Fehlermeldung.

C:\Programme\mingw\bin\..lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: ..\..\: No such file: No such file or directory

Ich hoffe du kannst mir weiterhin Hilfestellung leisten. Bis hierhin aber schon mal vielen Dank.
 
Zuletzt bearbeitet:
  1. Ich habe unter Libraries die "Library (-l)" und den "Library Search Path (-L)" entfernt.
  2. Unter "Miscellaneous" habe ich den absoluten Pfad der mpusbapi.lib (inklusive dem Dateinamen) als "Other Object" hinzugefügt.
Was genau steht denn jetzt da drin? Hat der Pfad evtl. Leerzeichen? Hast du einen absoluten oder relativen Pfad angegeben?

Gruß
 
Unter Miscellaneous -> Other Objects steht folgender Pfad.

C:\Microchip Solutions\USB Tools\MCHPUSB Custom Driver\Mpusbapi\Dll\Borland_C\Source\mpusbapi.lib

Zum Test habe ich den Ordner "Source" nach "C:\" kopiert und unter "Other Objects" den Pfad "C:\Source\mpusbapi.lib" angegeben. Dies führt jedoch zu der gleichen Fehlermeldung. An den Leerzeichen scheint es nicht zu liegen.
 
Zuletzt bearbeitet:
Anscheinend funkt Eclipse da irgendwie dazwischen.

Trag die Datei einfach unter Miscallaneous->Linker flags ein. Mach am besten doppelte Anführungszeichen drum falls Leerzeichen drin sind.

Gruß

PS: Da fällt mir ein, das das keine so gute Idee ist da die Bibliotheken ganz zuletzt aufgeführt werden sollten.

Dann nimm doch die Variante und benenne einfach die Datei um so das GCC diese mit den -l und -L Flags findet.
 
Zuletzt bearbeitet:
Hallo,

also die Alternative mit dem Kopieren und hinzufügen des Prefix "lib" habe ich bereits versucht, dass hat ebenfalls nicht funktioniert.

Ich habe aber noch folgende Informationen gefunden, falls diese hilfreich sind.

Ich habe den kompletten Ordner "Source" inklusive den *.h, *.cpp, *.lib, *.dll, ... in mein Eclipse Projekt importiert. Muss ich dann den Pfad der lib trotzdem angeben ?

In einem anderen Forum habe ich folgenden Thread gefunden.

http://www.microchip.com/forums/tm.aspx?m=264386&mpage=1&key=mpusbapi&#264638

Hier musste der Topic-Ersteller die Datei setupapi.dll aus C:\windows\system32 verlinken und konnte den Source Code somit kompilieren. Wenn ich sämtliche Angaben unter Library, Library Search Path und Miscellaneous entferne erhalte ich die gleichen Fehlermeldungen wie der Topic Starter.
 
Ich habe aber noch folgende Informationen gefunden, falls diese hilfreich sind.

Ich habe den kompletten Ordner "Source" inklusive den *.h, *.cpp, *.lib, *.dll, ... in mein Eclipse Projekt importiert. Muss ich dann den Pfad der lib trotzdem angeben ?
Ja.

Grundsätzlich würde man aber das andere Projekt nicht importieren, sondern nur den Include Pfad zu den Headern anpassen und eben die Bibliothek hinzufügen.
In einem anderen Forum habe ich folgenden Thread gefunden.

http://www.microchip.com/forums/tm.aspx?m=264386&mpage=1&key=mpusbapi

Hier musste der Topic-Ersteller die Datei setupapi.dll aus C:\windows\system32 verlinken und konnte den Source Code somit kompilieren. Wenn ich sämtliche Angaben unter Library, Library Search Path und Miscellaneous entferne erhalte ich die gleichen Fehlermeldungen wie der Topic Starter.
Das ist aber ein ganz anderes Problem. Wenn du in deinem Code die SetupDiGetClassDevs Funktion benutzt, dann steht hier: http://msdn.microsoft.com/en-us/library/ms792959.aspx auch welche Bibliothek man dafür einbinden muss.

Wie sieht denn die Befehlszeile aus?

Gruß
 
Zurück