Forum: PC-Programmierung Fehlermeldung von Microsoft Visual C++ 2003


von tool (Gast)


Lesenswert?

Ich muss ein vorhandenes C++ Projekt abändern. Auf meinem Rechner habe 
ich Microsoft Visual Studion.Net 2003 installiert. Wenn ich das Projekt 
kompiliere erhalte ich immer diese Fehlermeldung:
1
------ Erstellen gestartet: Projekt: GDE_3, Konfiguration: Debug Win32 ------
2
3
Kompilieren...
4
user.cpp
5
d:\Dokumente\Test\user.cpp(6) : fatal error C1853: Die vorkompilierte Header-Datei 'Debug/GDE_3.pch' stammt von einer früheren Version des Compilers, oder der vorkompilierte Header stammt von C++, und Sie verwenden Ihn von C (oder umgekehrt)
6
7
Das Build-Protokoll wurde unter "file://d:\Dokumente\Test\Debug\BuildLog.htm" gespeichert.
8
GDE_3 - 1 Fehler, 0 Warnung(en)
9
10
11
---------------------- Fertig ----------------------
12
13
    Erstellen: 0 erfolgreich, 1 fehlgeschlagen, 0 übersprungen

Was kann ich tun?

von Uhu U. (uhu)


Lesenswert?

Ein Clean ausführen, oder ein Rebuild.

von Karl H. (kbuchegg)


Lesenswert?

Zumindest in früheren Version von Dev-Studio gab es manchmal
auch den Fall, dass ein kompletter Rebuild auch nichts geholfen
hat.
In dem Fall: Das Debug Verzeichnis komplett löschen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

... oder eben genau die angegebene Datei löschen.

von tool (Gast)


Lesenswert?

Ich hab sowohl die Datei als auch den ganzen DEBUG Ordner gelöscht.
1
------ Erstellen gestartet: Projekt: GDE_3, Konfiguration: Release Win32 ------
2
3
Verknüpfen...
4
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) bereits in libcpmt.lib(newop.obj) definiert
5
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) bereits in libcpmt.lib(newaop.obj) definiert
6
Release/GDE_3.exe : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
7
8
GDE_3 - 3 Fehler, 0 Warnung(en)
9
10
11
---------------------- Fertig ----------------------
12
13
    Erstellen: 0 erfolgreich, 1 fehlgeschlagen, 0 übersprungen

Was kann ich noch tun?

von tool (Gast)


Lesenswert?

... ich habs sogar mit dem Bereinigen versucht. Hilft alles nichts.

von Uhu U. (uhu)


Lesenswert?

tool, warum list du eigentlich nicht die Fehlermeldungen? Dort steht
doch ganz genau was Sache ist... Oder kannst du kein Englisch?

Mit dem vorherigen Fehler hat das jetzt nicht mehr die Bohne zu tun.

Der Linker sagt, daß in nafxcw.lib die Operatorfunktionen

   void * __cdecl operator new(unsigned int) und
   void * __cdecl operator new[](unsigned int)

definiert sind, die bereits in der Bibliothek libcpmt.lib enthalten
sind.

Du mußt dich also für eine der beiden Bibliotheken entscheiden und nicht 
einfach beide einbauen.

von tool (Gast)


Lesenswert?

Sorry bin nicht so fit in dem ganzen. Ich hab alles mögliche schon 
durchsucht ohne Erfolg. Wa exakt kann ich unter "Microsoft Visual 
Studio.NET 2003" die Einstellungen vornehmen?

von Uhu U. (uhu)


Lesenswert?

tool wrote:
> Wa exakt kann ich unter "Microsoft Visual Studio.NET 2003" die
> Einstellungen vornehmen?

Leider kann ich dir das nur so ungefähr sagen, weil ich kein 2003 
greifbar habe:

Unter Projekteigenschaften | Linker | Input | Additional Dependencies 
sind die zusätzlichen Bibliotheken aufgelistet, gegen die das Projekt 
gebunden werden soll.

Aus deiner ersten Fehlermeldung ziehe ich den Schluß, daß du ein Projekt 
compilieren willst, das mit einer Vorgängerversion von 2003 entwickelt 
wurde. Da können Inkompatibilitäten auftreten, deren Lösung selbst für 
Experten nicht eben das reine Vergnügen ist.

Bist wenigstens sicher, daß das Projekt für .NET entwickelt wurde?

von tool (Gast)


Lesenswert?

Danke für die Hilfe! Ich konnte | Input | Additional Dependencies | 
nicht bei mir finden. Ich weiss nicht was ich da noch tun kann. So ein 
Bullshit!

von Uhu U. (uhu)


Lesenswert?

Hast du im 'Solution Explorer' - ich hoffe, der heißt bei 2003 auch so - 
auf der zweiten Ebene rechtsgeklickt?

von tool (Gast)


Lesenswert?

Den kann ich auch nicht finden!

von Uhu U. (uhu)


Lesenswert?

Siehst du irgendwo eine Baumdarstellung deines Projektes?

Gibt es im Menü unter 'View' einen Eintrag 'Solution Explorer'?

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Bei der deutschen Version von VisualStudio heißt der "Solution Explorer" 
auch "Projektmappen-Explorer"...

von tool (Gast)


Lesenswert?

Also den Baum sehe ich. Kann aber die Einstellung für den Linker nicht 
finden. bzw. was soll man da genau verändern?

von tool (Gast)


Lesenswert?

Bis jetzt hab ichs noch nicht hinbekommen. Ich konnte die genannten 
Einstellungen nicht finden.

von Christian R. (supachris)


Lesenswert?

Hmmm? Project -> Options -> Linker....was ist da so schwer dran?

Aber dein Problem wird woanders liegen. Ich denke mal, das Programm 
stammt von VS 6.0 oder sowas. Irgendwie ist der new-Operator jetzt 
anders definiert. Da scheinen irgendwelche alten Header includiert zu 
sein....oder irgendwo ist explizit eine alte lib gelinkt. Lässt sich 
ohne das komplette Projekt nicht ohne Weiteres sagen.

von Uhu U. (uhu)


Lesenswert?

Christian R. wrote:
> Irgendwie ist der new-Operator jetzt
> anders definiert. Da scheinen irgendwelche alten Header includiert zu
> sein....oder irgendwo ist explizit eine alte lib gelinkt.

Nein, das hat mit Sicherheit nichts mit Headerfiles zu tun.

> Lässt sich ohne das komplette Projekt nicht ohne Weiteres sagen.

Da hast du wohl recht. Ich würde empfehlen, ein neues Projekt zu 
erzeugen und die Quelldateien dort hinein zu übernehmen und dann so 
lange feintunen, bis es sich übersetzen und binden läßt.

Ohne Ahnung von VS 2003 und dem Projekt dürfte das allerdings auch kein 
Zuckerschlecken werden...

Die einfachste Lösung: Benutze die VC-Version, mit der das Projekt 
zuletzt entwickelt wurde.

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
Noch kein Account? Hier anmelden.