2

Linux VM (バージョン 2.6) 内で実行する必要があるこの基本的な割り当てがあり、このファイルを取得しようとしています

test_module.c

/*
*   test module.
*/

#include <linux/module.h>
#include <linux/config.h>
#include <linux/init.h>

MODULE_LICENSE("GPL");

static int __init initialization_routine(void) {

printk ("Hello, world!\n");

return 0;
}

static void __exit cleanup_routine(void) {

printk ("Unloading module!\n");
}

module_init(initialization_routine);
module_exit(cleanup_routine);

そして、このmakeファイルでmakeコマンドを使用できるはずです

メイクファイル

    make:
         obj-m += test_module.o

しかし、obj-m not found というエラーが表示され続けます。オンラインで調べましたが、何も見つからないようです。object module コマンドを取得するためにインストールする必要があるものはありますか? それはgccと関係がありますか?

4

4 に答える 4

0

そうでないときにコマンドとして使用obj-mしているため、実行しているようにターゲットの後にリストするべきではありません。

モジュールをコンパイルする最も簡単な方法は、このガイドに従うことです。または、あなたの場合は、ビルドするのに非常に便利な単純なメイクファイルをコピーするだけです。

obj-m += test_module.o

all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
于 2012-09-19T17:41:59.850 に答える
0

あなたのケースかどうかはわかりませんが、ユーザーが「... make: obj-m += test_module.o」を含むファイルを実行しようとすると、「obj-m: not found」が発生することがよくあります。代わりに、「... make: obj-m += ...」の内容を「Makefile」に入れ、このディレクトリでコマンド「make」を実行します。

于 2016-12-02T12:58:46.163 に答える