Hallo,
beim gcc führt das zu nichts anderem als:
/usr/lib/gcc-lib/i486-suse-linux/3.3/../../../crt1.o(.text+0x18): In function
`_start': : undefined reference to `main'
Also, das bedeutet, dass es keine Funktion 'main' gibt. Dieser Fehler tritt erst beim Linken auf, also wenn du ein ausführbares Binary erstellst. Wenn du nur die Objektdateien (.o) erstellen willst, musst du beim gcc "-c" angeben. Wenn das Ergebnis ausführbar sein soll (zB a.out), brauchst du eine Funktion int main(void) { init_module(); cleanup_module(); return 0; }
/tmp/cck6hemX.o(.text+0x11): In function `init_module': : undefined reference to `printk'
/tmp/cck6hemX.o(.text+0x30): In function `cleanup_module': : undefined reference to `printk'
Hhmm, ich habe keine Ahnung von Treiberprogrammierung, aber ich habe keine Funktion printk in einer module.h gefunden. Der Compiler übrigens wohl auch nicht. Jedenfalls hat der Linker nichts entsprechendes gefunden. Musst du noch irgendwelche Bibliotheken einbinden (mit -lNAME, wenn libNAME.a das Archiv mit der Bibliotheksfunktion ist)?
Ich würde gern wissen: Was ist da faul ? Und warum sind bei SuSE /usr/include/asm und /usr/include/linux keine Links zu den Kernel-Sourcen?
Gute Frage! Ciau, Jürgen