Problem bei'm erstellen eines eigenen Kernel Device



  • Hi ich habe versucht mit hilfe des "The Linux Kernel Module Programming Guide" mein eigenes device zu erstellen.

    ich hab mir dazu den quelltext von beispiel 4-1 kopiert und versucht zu kompilieren. http://tldp.org/LDP/lkmpg/x571.html#AEN692

    Der erste Fehler an dem ich hängen geblieben bin war ein überflüssiges " am Ende von ziele 92.

    Nachdem dieser fehler koregiert war bekahm ich diese Fehlermeldung beim versuch zu kompiliren:

    "GW:~/cpp # gcc ./test2.cpp
    ./test2.cpp:42: variable struct file_operations fops' has initializer but incom plete type ./test2.cpp:43: parse error before.'
    ./test2.cpp: In function `int init_module()':
    ./test2.cpp:55: confused by earlier errors, bailing out"

    Kann mir jemand bei dem fehler weiterhelfen?
    Hat jemand ein bessres Tutorial?

    schon mal DANKE für eure Hilfe

    M. Fink

    [ Dieser Beitrag wurde am 03.07.2003 um 14:56 Uhr von M. Fink editiert. ]



  • Habe mir zwar den Quellcode angesehen, aber was überhaupt dieser Punkt bedeutet ist mir auch nicht klar.
    ABER: C++ ist ja nicht einfach eine Erweiterung von C, sondern teilweise gibt es auch richtige Unterschiede. Und da man Module in der Regel in C schreibt (und dieses Beispiel ist ein C-Code), solltest Du es vielleicht auf mit dem C-Compiler übersetzen. Wahrscheinlich löst sich der Fehler dann von selbst.

    Gruß,
    wischmop



  • Original erstellt von wischmop2:
    Und da man Module in der Regel in C schreibt (und dieses Beispiel ist ein C-Code), solltest Du es vielleicht auf mit dem C-Compiler übersetzen.

    gcc IST ein C-Compiler.



  • ... der bei einer Dateiendung von .cpp im C++ Modus übersetzt. Der Unterschied zwischen gcc und g++ ist einzig und allein, dass g++ die C++ Standardlibrary mitlinkt.



  • Original erstellt von M. Fink:
    **
    Hat jemand ein bessres Tutorial?

    schon mal DANKE für eure Hilfe

    M. Fink

    [ Dieser Beitrag wurde am 03.07.2003 um 14:56 Uhr von [qb]M. Fink** editiert. ][/QB]

    Ich empfehle dafür immer: http://www.oreilly.de/german/freebooks/linuxdrive2ger/book1.html (gibt’s natürlich auch in Englisch)
    Ist meiner Meinung nach das kompetenteste Werk zur Treiberentwicklung unter Linux.

    Ansonsten tippe ich auch auf *.cpp

    Joe



  • Danke euch allen

    Das Problem lag auch an dem .cpp...

    Aber ich befass mich glaub ich erst ma mit dem Buch, das Joe mir epfohlen hat.

    Ich denk ma damit komm ich besser klar.
    🙂

    M.Fink



  • Also bei mir funktioniert das Teil. Du solltest vielleicht einfach das Makefile schreiben, dann make aufrufen. Wenn du das überflüssige Anführungszeichen rausnimmst, sollte es eigentlich genau so funktionieren.

    Hast du das Tutorial von Anfang an gelesen?


Anmelden zum Antworten