makefile
-
@nman
Danke fein. Ich muss wohl schlicht und einfach nochmal versuchen die Philosophie hinter make zu verstehen.für was brauchste das denn?
Ich habe eine Klasse die auf Posix-kompatiblen Funktionionen aufbaut. Im Normalfall reichen also ein paar includes. Unter Win98 gibt es aber genau diese Posix-kompatiblen Funktionen nicht. Also verwende ich in diesem Fall selbst implementierte Funktionen mit der selben Schnittstelle. Die Definitionen dieser Funktionen müssen nun aber natürlich mit übersetzt und gelinkt werden. Also habe ich unter Win98 eine cpp-Datei mehr.
[ Dieser Beitrag wurde am 04.05.2003 um 11:16 Uhr von HumeSikkins editiert. ]
-
Original erstellt von HumeSikkins:
**Ich habe eine Klasse die auf Posix-kompatiblen Funktionionen aufbaut. Im Normalfall reichen also ein paar includes. Unter Win98 gibt es aber genau diese Posix-kompatiblen Funktionen nicht. Also verwende ich in diesem Fall selbst implementierte Funktionen mit der selben Schnittstelle. Die Definitionen dieser Funktionen müssen nun aber natürlich mit übersetzt und gelinkt werden. Also habe ich unter Win98 eine cpp-Datei mehr.
**schreibe noch ein header und cpp,
in normal fall includet sie die postfix header, unter win98 includet sie deinen header und in die cpp datei beinhaltet deinen codedann arbeites du mit den gleichen header und das makefile ist immer gleich
-
schreibe noch ein header und cpp
Genau das habe ich gemacht. Habe jetzt dirstream.h, dirstreamw32.h und dirstreamw32.cpp.
in normal fall includet sie die postfix header
Genau. dirstream.h macht sowas:
#ifdef HAT_POSIX_KRAM #include <dirent.h> #include <sys/stat.h> #else #include "dirstreamw32.h" #endif
die cpp datei beinhaltet deinen code
Richtig. Die dirstreamw32.cpp beinhaltet die Definitonen der Funktionen wir opendir, readdir usw.
dann arbeites du mit den gleichen header und das makefile ist immer gleich
So. Und hier kann ich dir nicht mehr folgen. Ich arbeite in der tat immer mit dem gleichen Header. User müssen immer nur dirstream.h inkludieren. Das makefile kann meiner Meinung nach aber nicht gleich bleiben, da es unter Win98 noch die dirstreamw32.cpp berücksichtigen muss.
Was übersehe ich?
-
dirstreamw32.cpp
#ifdef WIN32 //dein code #else //nix #endif
auch unter unix wird dann die dirstream32.cpp gelinkt, blos sie ist leer
-
Oha. So einfach kann es sein
Danke fein.
-
und wenn jemand standard-c++ nehmen muß, um das gewurstele los zu werden. das makefile ist erstmal angemessen, weils unerhört einfach zu benutzen.
ja klar, zum testen des Projekts etc. ist das natürlich gut, ich schreib mir am Anfang des Projekts auch idr. erst eine Makefile per Hand (vorallem da ich automake nicht mag)
das widerspricht eigentlich meinen vorstellungen von nem einfacen makefile. gehen tut das. aber ibts keinen anderen weg? für was brauchste das denn?
jo, einfach ist das nicht mehr aber nötig in der Praxis und dafür nimmt man ja auch eigentlich ein configure Script aber langsam geht die Mode dahin, dass man alles von Make bearbeiten lässt, ist eh viel praktischer.
wobei in Humes Situation eh kein autoconf noch Makefile Tricks mit uname helfen, da Windows nicht POSIX kompatibel ist und man auch nicht vom User erwarten kann, dass der Cygwin oä. installiert hat
-
[ Dieser Beitrag wurde am 07.05.2003 um 04:10 Uhr von volkard editiert. ]
-
@volkard
Nur um noch mal sicher zu gehen: Du hast nichts dagegen, wenn man dein makefile nahezu 1:1 übernimmt? Ist nämlich genau das was ich gerade brauche.
-
Original erstellt von HumeSikkins:
@volkard
Nur um noch mal sicher zu gehen: Du hast nichts dagegen, wenn man dein makefile nahezu 1:1 übernimmt? Ist nämlich genau das was ich gerade brauche.nix dagegen. ich habs doch nur aus der hilfe von make zusammenkopiert.
aber wenn du mal was rausfundest, wie man die compilezeiten senken kann (mingw hab ich), dann sag bescheid. precompiled headers sind wohl nur angekündigt aber nicht verfügbar.
-
aber wenn du mal was rausfundest, wie man die compilezeiten senken kann (mingw hab ich), dann sag bescheid.
Oh. Mit dem Problem quäle ich mich auch gerade rum. Sowohl mit dem mingw, als auch mit dem gcc 3.2.2. Mit dem gcc 2.95 hatte ich wenigstens noch das Gefühl das es langsam voran geht. Jetzt ist aber nicht mal mehr schleichend das richtige Wort
-
Original erstellt von HumeSikkins:
[quote]Sowohl mit dem mingw, als auch mit dem gcc 3.2.2. Mit dem gcc 2.95 hatte ich wenigstens noch das Gefühl das es langsam voran geht. Jetzt ist aber nicht mal mehr schleichend das richtige Worthab jetzt mingw mit dem gcc 3.2.3 drin. der scheint deutlich flotter als der mingw mit dem gcc 3.2.
-
ich hätte es fast vergessen, aber ich pack den Thread mal in die FAQ