# NMAKE: fatal error U1077



## lernen.2007 (15. März 2006)

Hallo Leute,
ich habe wie immer mein Programm gestartet aber bekomme folgende Fehlermeldung:
NMAKE: fatal error U1077 D:\ return code '0x1'
Stop.
NMAKE: fatal error U1077: 'echo' :return code '0x2'
Stop.
Was heisst das? Wie kann ich es lösen?
Danke


----------



## deepthroat (15. März 2006)

Hi.

Das heißt das das Programm was in den einfachen Anführungsstrichen hinter U1077: angegeben ist einen Fehler verursacht hat. Das kannst du lösen indem du die Fehler beseitigst. Besser helfen könnte evlt. jemand wenn du mal erzählst was du gemacht hast und vor allem die komplette Ausgabe postest statt nur 3 Zeilen.

Gruß


----------



## lernen.2007 (15. März 2006)

Hallo,

wenn ich eine cpp in DOS-BEFEHLFENSTER so aufrufe: nmake halli.cpp bekomme die folgende Fehlermeldung -->fatal error U1034: syntax error:separator missing

Was ist der Grund dafür?

Danke


----------



## deepthroat (15. März 2006)

Tip 1: Google öffnen, "nmake u1034" eintippen und auf suchen klicken.

Tip 2: Versuch doch wenigstens dein Problem zu beschreiben. Dazu wäre es nützlich die komplette Ausgabe von nmake zu sehen und den entsprechenden Teil der Make Datei mit genug Kontext das man evtl. sieht woran es liegt.

Ist die halli.cpp Datei wirklich eine Zieldatei? Solltest du nicht eher sowas angeben wie halli.exe?

Gruß


----------



## lernen.2007 (15. März 2006)

Ich habe einfach eine .cpp Datei mit Name hallo.cpp. Ich will das über MS-DOS ausführen und deshalb gehe in Ordner rein wo hallo.cpp steht und führe mit diesem Befehl aus:
nmake hallo.cpp

Aber bekomme die Folgende error:

fatal error U1034: syntax error : separator missing
Stop.

Hier ist der code:

#include <iostream.h>

void main()
{
 cout<<"hallo"<<endl;

 return;

}
 Wenn ich mit VISUAL STUDIO ausführe ist es kein Problem und ist auch keine Fehler da.
Danke


----------



## Thomas Kuse (15. März 2006)

Du führst im Visual Studio beim Klicken ja nicht nmake.exe abc.cpp aus, sondern nmake.exe Makefile .
NMake ist ein Makefile-Parser und kein Compiler!

Um Dein Problem also zu lösen, benötigst Du ein Makefile, welches Du unter Visual Studio sogar automatisch generieren kannst.


----------



## deepthroat (15. März 2006)

Thomas Kuse hat gesagt.:
			
		

> Du führst im Visual Studio beim Klicken ja nicht nmake.exe abc.cpp aus, sondern nmake.exe Makefile .
> NMake ist ein Makefile-Parser und kein Compiler!
> 
> Um Dein Problem also zu lösen, benötigst Du ein Makefile, welches Du unter Visual Studio sogar automatisch generieren kannst.


NMake kennt allerdings wie dessen Pendants auch implizite Regeln (wenn kein Makefile gefunden wird bzw. keins mit /F angegeben ist). Allerdings muß man bei jedem Make normalerweise die Zieldatei angeben und nicht die Quelldatei (die ja normal implizit nicht generiert werden kann).

Versuch's mal mit 
	
	
	



```
nmake hallo.exe
```

Gruß


----------



## lernen.2007 (15. März 2006)

Wenn ich so mache bekomme ich folgende Fehlermeldung:

Die Anwendung konnte nicht gestartet werden ,weil mspdb60.dll nicht gefunden wurde. Was auch noch komisch ist, der findet auch windows.h oder auch wie stdio.h  nicht. Ich weiss auch nicht mehr.

Danke


----------



## deepthroat (15. März 2006)

Hast du das Kommando denn auch im Visual Studio Command Prompt (das im DOS Fenster auch alle notwendigen Visual Studio Variablen gesetzt sind) ausgeführt?

Du mußt die vsvars32.bat Datei einbinden die irgendwo unterhalb des Visual Studio Verzeichnisses liegt (common\tools\vsvars32.bat) - kann allerdings bei verschiedenen Versionen variieren.

Gruß

/edit: Ach ja, bei Visual Studio 6 heißt die Datei vcvars32.bat und liegt normalerweise im microsoft visual studio 6\vc98\bin Verzeichnis. Du kannst die Datei manuell mit 
	
	
	



```
call PFAD_ZU_VCVARS\vcvars32.bat
```
 noch nachladen.


----------



## rohrbold (15. März 2006)

Achtung, Code Correction Police ;-)



			
				erkan erpolat hat gesagt.:
			
		

> #include <iostream.h>
> 
> void main()
> {
> ...



Wenn Du einen _Standard_ C/C++ Header einbinden willst, brauchst Du das Suffix .h nicht. Es ist also sauberer #include <iostream> zu schreiben (äquivalent <stdio> statt <stdio.h>). Die Funktion main() _muss_ mit dem Rückgabewert int und nicht void angegeben werden, auch wenn unter C++ die return-Anweisung fehlen darf. 
Du solltest unbedingt den Namensraum bekannt machen, dessen Du Dich mittels cout und endl bedienen möchtest, also entweder global in der Datei mittels using namespace std; oder (meiner Meinung nach besser) vor die Elemente cout und endl das Präfix std:: setzen. Schließlich ist es noch guter Stil, wenn man bei einer int main() Funktion dann abschließend ein return 0; angibt.
Ein sauberes Hallo Welt Programm unter C++ sieht schließlich so aus:

```
#include <iostream>

int main()
{
        std::cout << "Hallo Welt" << std::endl;
        return 0;
}
```

Du solltest Dir diese kleinen Regeln gleich von Beginn an merken und am besten auch immer so Deine Programme kompilieren, dass möglichst viele Warnungen ausgegeben werden. Mit dem gcc wären das so Schalter wie -W -Wall -pedantic, mit Visual Studio kenne ich mich leider nicht aus, aber da gibts bestimmt etwas ganz ähnliches.


----------



## lernen.2007 (16. März 2006)

Hallo Leute,
ich bekomme jetzt die folgende Fehlermeldungen:

stdio.h: No such file or directory
windows.h: No such file or directory
und noch:
NMAKE : fatal error U1077: 'tclsh' : return code '0x1'
Stop.
NMAKE : fatal error U1077: 'echo' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'echo' : return code '0x2'
Stop.


----------



## deepthroat (16. März 2006)

Hi.





			
				rohrbold hat gesagt.:
			
		

> äquivalent <stdio> statt <stdio.h>


Das ist nicht ganz richtig. Bei C Headern wird ein c dem Namen vorangestellt, es muß also <cstdio> heißen.

@erkan erpolat: Siehe http://eclipsewiki.editme.com/InstallingCDTWithMSVisualC und benutz doch bitte die Code Tags.

Gruß


----------



## lernen.2007 (16. März 2006)

Fehlermeldungen:

stdio.h: No such file or directory
windows.h: No such file or directory
und noch:
NMAKE : fatal error U1077: 'tclsh' : return code '0x1'
Stop.
NMAKE : fatal error U1077: 'echo' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'echo' : return code '0x2'
Stop.

Wenn ich es unter VISUAL STUDIO 6.0 compiliere dann sind keine Fehler da  aber unter ECLIPSE mit C++ bekomme ich die oberen Fehlermeldungen.

Warum?


----------



## noname333444 (23. März 2010)

Also ich hab grad gelesen, dass man vorher die in seinem VisualStudio/Bin Verzeichnis befindende "vcvars32.bat" einfach vorher aufrufen muss, damit die VStudio-Umgebungsvariablen gesetzt sind. Bei mir hats funktioniert. Grüße an alle die, die sich nochmal hierher verirren...


----------



## vfl_freak (23. März 2010)

Moin,

was nun ja vermutlich so einige sein werden ... ;-]

Gruß
Klaus


----------

