モジュールのコンパイルの問題:「ターゲット生成ルールがありません」

モジュールのコンパイルの問題:「ターゲット生成ルールがありません」

example1.cというカーネル用の単純なモジュールのソースコードを作成しました。



  #include linux/module.h

 static int __init _init_(void)
 {
 printk(KERN_INFO"Hello");
 return 0;
 }

 static void __exit _exit_(void)
 {


 printk(KERN_INFO"bye\n");
 }

 module_init(_init_);
 module_exit(_exit_);

後でこの方法でコンパイルしてオブジェクトファイルを作成したいと思います(example1.oを意味します)。


gcc -Wall -o example1.c example1

しかし、そうすることはできません。このエラーが発生します。


example1: file not recognized: file format not recognized

ベストアンサー1

このexampleone代わりに出力すると、もはや得られません。example1gcc example1.c -o exampleone

gcc: error: gcc: No such file or directory
gcc: error: example1: No such file or directory
gcc: fatal error: no input files

コードを直接コンパイルすると、次のエラーが発生します。

example1.c:1:11: error: #include expects "FILENAME" or <FILENAME>
    1 |  #include linux/module.h
      |           ^~~~~
example1.c:3:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_init_’
    3 |  static int __init _init_(void)
      |                    ^~~~~~
example1.c:9:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_exit_’
    9 |  static void __exit _exit_(void)
      |                     ^~~~~~
example1.c:16:2: warning: data definition has no type or storage class
   16 |  module_init(_init_);
      |  ^~~~~~~~~~~
example1.c:16:2: warning: type defaults to ‘int’ in declaration of ‘module_init’ [-Wimplicit-int]
example1.c:16:2: warning: parameter names (without types) in function declaration
example1.c:17:2: warning: data definition has no type or storage class
   17 |  module_exit(_exit_);
      |  ^~~~~~~~~~~
example1.c:17:2: warning: type defaults to ‘int’ in declaration of ‘module_exit’ [-Wimplicit-int]
example1.c:17:2: warning: parameter names (without types) in function declaration

問題が解決したら教えてください。そうでない場合は、お知らせください。この回答を削除します。最後に、端末の正しいディレクトリにあることを確認してください。

おすすめ記事