On Tue, Aug 29, 2000 at 10:00:51AM +0200, Ulf Lorenz wrote:
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).
Obiges macht, wie man sich per gcc -v anschauen kann, folgendes:
cpp file1.c /tmp/tmp1 cc1 /tmp/1 /tmp/2 as /tmp/2 /tmp/3 cpp file2.c /tmp/4 cc1 /tmp/4 /tmp/5 as /tmp/5 /tmp/6 ld /tmp/3 /tmp/6 -o program
Abgesehen davon, dass damit die Objectfiles nur kurz im /tmp landen ist das analog zu "gcc -c file1.c; gcc -c file2.c; gcc file1.o file2.o -o program" Da gibt es also keine anderen "Berührungspunkt" und beide varianten sollten den gleichen Kode fressen.
Reinhard