Forum: PC-Programmierung mit makefile kompilieren?


von manuel (Gast)


Lesenswert?

moin,

Wie kann ich ein Makefile ausführen?
Geht das mit visual c++ 6, wenn ja wie muss ich das anstellen?
danke!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ja, das geht. Einerseits kann man ein Makefile in ein VC-Projekt 
überführen, andererseits kann man aber auch das Makefile in der 
Kommandozeile* ausführen lassen:

  cd c:\woauchimmer\mein\projekt\liegt

  nmake

oder

  nmake -f meinmakefile

(letzteres, wenn das Makefile nicht makefile heißt)

Das setzt voraus, daß %INCLUDE%, %LIB% und %PATH% korrekt gesetzt sind, 
das kann man unter anderem mit vcvars32.bat sicherstellen.
Das liegt in c:\woauchimmer\visualc\installiert\ist\..\VC98\BIN


*) Eingabeaufforderung. Oft fälschlich "Dos-Fenster" genannt.

von manuel (Gast)


Lesenswert?

Habs versucht allerdings erhalte ich, nach dem kompilieren in der 
konsole immer folgende meldung: "pfad" ist aktuell.
Hab ich einen Fehler gemacht oder ist dass in ordnung?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dein Projekt heißt "pfad"?

Du könntest nmake dazu bringen, das Projekt komplett neu zu übersetzen

  nmake -a

resp.

  nmake -a -f meinmakefile


PS: Das "dass" in Deinem letzten Satz wird auch trotz Rechtschreibreform 
mit einem "s" geschrieben.

von Christoph _. (chris)


Lesenswert?

Und wie so oft: Wenn du nicht beruflich dazu gezwungen bist, nimm nicht 
Visual Studio 6. Der C++-Compiler ist so uralt, dass das Programmieren 
damit wirklich keinen Spass mehr macht.

von Rolf Magnus (Gast)


Lesenswert?

>  cd c:\woauchimmer\mein\projekt\liegt

Das da oben wechselt nur das aktuelle Verzeichnis für das Laufwerk C:. 
Wenn du auf einem anderen Laufwerk bist, bleibst du dort. Du mußt dann 
auch nach C: wechseln, um wirklich in das Verzeichnis zu kommen. Es gibt 
anscheinend nicht einfach nur ein aktuelles Verzeichnis, sondern eines 
pro Laufwerk und dann eben noch das aktuelle Laufwerk. Mit cd wechselt 
man nur das Verzeichnis, nicht das Laufwerk.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Diese Erkenntnis hatte ich als gegeben angesehen. Wer der Ansicht ist, 
mit mehreren Laufwerken/Partitionen arbeiten zu müssen, der sollte über 
so etwas auch Bescheid wissen.

von Rolf Magnus (Gast)


Lesenswert?

Ich bin eher der Ansicht, daß die ganze Idee von Laufwerksbuchstaben 
unsinnig ist.

> Diese Erkenntnis hatte ich als gegeben angesehen.

Das kam nicht so ganz klar raus, denn wenn du eh schon auf dem Laufwerk 
bist, wo du den Pfad wechseln willst, brauchst du es nicht nochmal extra 
bei cd mit anzugeben.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Weißt Du, das war ein exemplarischer Pfad. Den der Proband durch seine 
auf seinem System vorliegenden Gegebenheiten ersetzen sollte. Was den 
Wechsel des Arbeitslaufwerks mit einschließt, sofern ein solcher nötig 
werden sollte.

von Dennis B. (Gast)


Lesenswert?

Hallo,

ich bin nun schon wieder seit Stunden am suchen und habe bis jetzt mit 
diesem Threat die besten Erfolge erzielt.

Ich versuche aus einem Makefile aus der SDL_gfx-2.0.17 eine .dll und 
eine .lib zu erzeugen.

In dem makefile steht u.a.:

# This makefile will build an SDL_gfx.dll with Visual C

# It was made for VC6 on Windows 98

#

# nmake should build the lot.

# .dll file goes in your system directory

# .lib and the .h files go into the searchpath of you compiler




Der Pfad zu der makedatei lautet:

C:\SDL_gfx-2.0.17

Der Pfad zu vcvars32.bat lautet:

E:\Microsoft Visual Studio\VC98\Bin

Ich rufe in der Kommandozeile zuerst den E:-Pfad auf und starte 
vcvars32.bat, danach gehe ich in den C:-Pfad und tippe nmake ein. (Ist 
das der richtige Ablauf oder ist hier schon ein Fehler drin?)

Danach bekomme ich die Fehlermeldung u1035.
Syntaxfehler ':' oder '=' erwartet. Ich suche echt schon seit Stunden wo 
der Fehler sein könnte. Auf der MSDN Seite stehen zwar mögliche 
Fehlerursachen, die mir aber nicht weiterhelfen. Hab echt schon sehr 
viel ausprobiert. Hab das makefile auch schon in andere Ordner kopiert, 
doch alles ohne Erfolg.

Würde mich echt über Hilfe freuen. Wenn ich irgendwas unklar geschrieben 
habe, reiche ich gerne alles was ihr wollt nach.

Gruß
Dennis

von Sven P. (Gast)


Lesenswert?

Poste mal den ganzen Makefile. Deine Ausschnippsel da oben enthalten nur 
Kommentare^^

von Dennis B. (Gast)


Lesenswert?

# This makefile will build an SDL_gfx.dll with Visual C

# It was made for VC6 on Windows 98

#

# nmake should build the lot.

# .dll file goes in your system directory

# .lib and the .h files go into the searchpath of you compiler

#

# Edit this:

LIBSDL=C:\LIB\sdl.lib



# Leave the rest

CFLAGS=-DBUILD_DLL -DWIN32



.c.obj:
  $(CC) $(CFLAGS) -I. $(CPPFLAGS) -c $(<:/=\)


OBJS=SDL_framerate.obj SDL_gfxPrimitives.obj SDL_imageFilter.obj 
SDL_rotozoom.obj



SDL_gfx.dll: $(OBJS)

  cl $(OBJS) /link /dll /out:$@ $(LIBSDL)


clean:

  del *.obj

  del *.lib

  del *.exp

  del *.dll

von Dennis B. (Gast)


Lesenswert?

Hier noch die Readme Datei zu dem o.g. Makefile:


Howto compile a SDL_gfx DLL on Windows with VisualC:

All that has to be done is drop the makefile in the SDL_gfx dir and
type "nmake". This assumes the VisualC environment variables have been 
set
up, which can be done with a batchfile named vcvars32.bat in VC's bin
dir.  There is no install target since it is never clear where things 
can
be found on Windows...



Der genaue Fehlertext lautet:

makefile(12) : fatal error U1035: Syntaxfehler: ':' oder '=' 
Trennzeichen erwartet


Gruß
Dennis

von Tilo (Gast)


Lesenswert?

moin...
ich hoffe, das man mir hier weiterhelfen kann...

ich versuche auch gerade eine makefile zu compilieren. installiert hab 
ich als Prog VC++ 2008 express.
die makefile befindet sich in einem externen order (d.h. 
c:\build\makefile.vc)
diese versuche ich mit dem befehl nmake zu kompilieren. jedoch bekomm 
ich immer nur ne fehlermeldung, dass die makefile nicht gefunden werden 
kann...

was mach ich falsch?
danke schon mal...

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.