libnodave eclipse linker nicht gefunden

dabonesdone

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich versuche gerade das testISO_TCP.c in den Beispielen zu compilieren.

Ich benutze Eclipse mit MinGW als Compiler.

Ich bekomme folgende Fehlermeldung:
Code:
13:37:12 **** Incremental Build of configuration Debug for project Hallo ****
Info: Internal Builder is used for build
g++ "-LC:\\libnodave" -o Hallo.exe "src\\Hallo.o" -lnodave -DBCCWIN -DDAVE_LITTLE_ENDIAN 
src\Hallo.o: In function `main':
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:38: undefined reference to `_imp__daveSetDebug@4'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:45: undefined reference to `_imp__openSocket@8'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:49: undefined reference to `_imp__daveNewInterface@24'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:50: undefined reference to `_imp__daveSetTimeout@8'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:51: undefined reference to `_imp__daveNewConnection@16'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:53: undefined reference to `_imp__daveConnectPLC@4'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:56: undefined reference to `_imp__daveReadBytes@24'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:58: undefined reference to `_imp__daveGetU32@4'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:59: undefined reference to `_imp__daveGetU32@4'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:60: undefined reference to `_imp__daveGetU32@4'
C:\Dokumente und Einstellungen\Administrator\workspace\Hallo\Debug/../src/Hallo.cpp:61: undefined reference to `_imp__daveGetFloat@4'
collect2: ld gab 1 als Ende-Status zurück

13:37:12 Build Finished (took 282ms)

Hat jemand einen Tipp für mich?

Viele Grüße DaBonesDone
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Reiner,

Ich hoffe ich habe dich richtig Verstanden.
ich hab die .lib mal mit nem Hexeditor geöffnet.
Die Befehle die angemeckert werden stehen so drin, also mit Groß- und Kleinschreibung.

Oder meinst du das anders?

VG DaBonesDone
 
Nein, ich meine das genauso. Stehen die wirklich in exakt dieser Schreibweise in der Lib, also ohne weitere Ergänzungen (nach der Zahl ist Schluss mit dem Text) etc.? Ansonsten: wird die Lib auch dort gesucht wo sie sich tatsächlich befindet? Oder muss die Extension der Lib mit angegeben werden?
 
Steht genau so in der lib. Die Lib ist in C:\libnodave.
Hab ich evtl bei Eclipse irgendwas versemmelt beim einbinden?
Wo muss ich die lib einbinden?

VG DaBonesDone
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die lib nodave.lib heißt und in C:\libnodave ist, kann ich jetzt nicht mehr weiterhelfen. Eventuell zur Sicherheit die Extension bei lib in der Kommandozeile mit angeben. Aber ansonsten nur ????
 
Also mein Kenntnisstand ist dass die bei libnodave mitgelieferte lib nicht mit den gcc kompatibel ist, eben aufgrund der verschiedenen Aufrufkonventionen. Es gibt zwar ein Tool mit dem sich fertige libs konvertieren lassen (implib), bei libnodave wo man alles im Quellcode hat halte ich das aber für überflüssig. Da kann man sich einfacher eine zum gcc kompatible Bibliotheksdatei (.a) erstellen.

Ich würde bei den ersten Schritten mit libnodave vielleicht erstmal statisch linken, wenn das funktioniert kann man sich daran machen bei Bedarf auf dynamisch umzustellen.

Was ich bei dir noch gesehen habe ist dass du g++ aufrufst. Libnodave ist reines C, darum würde ich anstelle von g++ gcc aufrufen, denn das Programm entscheidet anhand der Dateiendung ob es den C oder den C++ Compiler aufruft.
Gibt es bei dir sowas wie ein Makefile? Dann stell das doch mal hier rein.
Du musst später nämlich noch die libwsock32.a (bei 32 Bit) hinzulinken.
 
Hallo Thomas,

danke für die Antwort.
Da das ganze meine ersten Schritte mit libnodave auf C Basis sind, bin ich natürlich auch bei der Wahl meiner Entwicklungsumgebung noch sehr frei.
Schön wäre es, das ganze mit der Programmiersprache C zu nutzen ohne jetzt ewig viel umzumurksen :)

Das ich mit C Programmiert habe ist schon ein weilchen her.... und ich mag den Syntax. :D
Ich bin da natürlich eher ein leicht fortgeschrittener Programmierer in C. ;)
Aber ich bin überhaupt nicht auf irgendwas festgenagelt.

Welche Umgebung würdest empfehlen?
Will einfach das TCP Beispiel compilieren und ne lauffähige EXE rausbekommen und den Code dann nach und nach anpassen.
Ich wills jetzt nicht einfach haben, aber ich will mir jetzt auch nicht unnötig das leben schwer machen, wenn es eher an der Entwicklungsumgebung scheitert.
Muss auch nicht unbedingt C sein....

Viele Grüße, DaBonesDone
 
Zurück
Oben