unaufgeloeste externe Verweise

Gast #249794
Lesenswert?

Ich bekomme beim Compilieren eines Winamp Plugins (das ein LCD am COM
Port ansteuern soll) folgende Fehler:

--------------------Konfiguration: svis - Win32
Debug--------------------
Linker-Vorgang läuft...
   Bibliothek .\Debug/Svis.lib und Objekt .\Debug/Svis.exp wird
erstellt
Svis.obj : error LNK2001: Nichtaufgeloestes externes Symbol _SendByte
Svis.obj : error LNK2001: Nichtaufgeloestes externes Symbol
_Serial_Init
Svis.obj : error LNK2001: Nichtaufgeloestes externes Symbol
_Uninit_Serial
.\Debug/Svis.dll : fatal error LNK1120: 3 unaufgeloeste externe
Verweise
Fehler beim Ausführen von link.exe.

Svis.dll - 4 Fehler, 0 Warnung(en)


Die besagen, dass ich zwar die Header Datei (serial.h) eingebunden
habe, aber er die eigentlichen Funktionen nicht findet.
Nur warum nicht ? Die Datei serial.cpp befindet sich in demselben
Ordner, und ich habe sie auch dem Projekt hinzugefügt. Die Datei wird
auch Compiliert, denn wenn ich in serial.cpp einen Fehler einbaue
meldet er diesen.

Meiner Meinung nach müsste es also funktionieren...
Angehängte Dateien:
Persönliche Seite #249795
Lesenswert?

Du mischt C und C++. Auf Linkerebene haben C++-Symbole sogenannte
"dekorierte" Namen, die zusätzlich zum Namen der Funktion auch noch
Beschreibungen der Argumente enthalten.

Abhilfe:

Datei serial.cpp umbenennen in serial.c

Zusätzlich die Zeile

  #include "stdafx.h"

ersetzen durch

  #include <windows.h>

Dann musst Du nur noch in der Projektverwaltung die -hier völlig
unnötige- MFC entfernen

(Rechtsklick auf "svis files", Settings, General und da "Not using
MFC" auswählen).

Dann wird es ohne Fehler, aber mit Warnungen übersetzt.

Die Warnungen solltest Du Dir allerdings auch näher ansehen.

vor allem die #defines in der Funktion render9 gehören da nicht hin.

Allerdings wirst Du dann trotzdem noch mit Linkerfehlermeldungen
erfreut werden,

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren