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
代わりに出力すると、もはや得られません。example1
gcc 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
問題が解決したら教えてください。そうでない場合は、お知らせください。この回答を削除します。最後に、端末の正しいディレクトリにあることを確認してください。