Torsten Lange wrote:
Danke, Tobias, so klappt die Parameteruebergabe wieder. Vielleicht noch ne kleine Frage. Braucht der Compiler keine Pfadangabe, wenn die Headerdatei im selben Verzeichnis steht, in dem man sich gerade befindet? Der sucht
Also noch mal zum Thema Header (ich muß es ja wissen :-) Du bindest Header mittels <myheader.h> oder "myheader.h" ein. Im ersten Fall werden die Includeverzeichnisse durchsucht, im zweiten nur das aktuelle Verzeichnis. Über den Schalter -I beim gcc fügst du den Includeverzeichnissen weitere Einträge hinzu (das beeinflußtm _nicht_ headr, die mit "" eingebunden sind). Unterverzeichnisse lassen sich auch direkt einbinden, z.B. sucht <linux/aheader.h> nach aheader.h im Unterverzeichnis linux in allen Includeverzeichnissen. Wenn du für ""-Header weitere Verzeichnisse einbinden willst, schau dir mal man gcc an (das geht auch irgendwie).
doch eigentlich in den vorgegebenen Dateien. Und warum geht bei: cc -I /home/.../header/ file1.c file2.c -o programm die Parameteruebergabe schief? Ist doch das selbe, ODER?
Hmm, ich bin mit der Theorie nicht soooo vertraut, aber das selbe ist das auf jeden Fall nicht. Der "Berührungspunkt" ist das Header-File und nicht das direkte Einbinden per include "file2.c", so daß der Compiler das irgendwie auseinanderfitzen muß beim linken (daß beide dasselbe Header-File einbinden). Ich bekomme grad mit, daß ich hier an meine Grenzen stoße, also lass ich es mal mit weiteren Erklärungen sein ;-).
Noch ein Tip: Wenn du so etwas häufig machst (mit Header-Files und so), schau dir erstmal "man make" und "man Makefile" an, da muß man nicht so viel tippen ;-).
Danke, Torsten
ulf