Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: libnodave eclipse linker nicht gefunden

  1. #1
    Registriert seit
    27.09.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    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
    Zitieren Zitieren libnodave eclipse linker nicht gefunden  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    640
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Es könnte die falsche calling convention sein. Wie lauten denn die Funktionsnamen in der lib (mit hexdump)?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    dabonesdone ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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

  4. #4
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    640
    Erhielt 955 Danke für 769 Beiträge

    Standard

    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?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  5. #5
    dabonesdone ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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

  6. #6
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    640
    Erhielt 955 Danke für 769 Beiträge

    Standard

    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 ????
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    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.

  8. #8
    dabonesdone ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    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.
    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

  9. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe hier mal eine Schritt für Schritt Anleitung geschrieben wie man das Ganze aus einer Eingabeaufforderung heraus übersetzt. Die Dateipfade musst du an deine Gegebenheiten anpassen:

    http://www.sps-forum.de/showthread.p...944#post250944

Ähnliche Themen

  1. Excel: Libnodave.dll wird nicht gefunden
    Von mrdoc im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 04.09.2013, 14:19
  2. libnodave wird nicht gefunden
    Von Proxy im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 10.09.2012, 10:35
  3. Antworten: 11
    Letzter Beitrag: 01.08.2012, 15:03
  4. Zielsystem wird nicht gefunden
    Von timod79 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 06.04.2009, 14:06
  5. Datenbaustein nicht gefunden
    Von SPS_NEU im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 18.03.2009, 08:17

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •