私はLinux Ubuntu 14.04を使用しています。私はLinuxカーネルモジュールプログラミングを開始したいと思います。私はhello.c(単純なHello Worldモジュール)とMakefileを持っています。しかし、 "make"コマンドでエラーが出ます。Linuxカーネルモジュールプログラミング - CONFIG_CC_STACKPROTECTOR_REGULARを使用できません:コンパイラでサポートされていない-fstack-protector
私はCannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compilerを試しましたが、それは私のためには機能しませんでした。 "作る" で
/* hello.c − Illustrating the __init, __initdata and __exit macros. */
#include <linux/module.h>
/* Needed by all modules */
#include <linux/kernel.h>
/* Needed for KERN_INFO */
#include <linux/init.h>
/* Needed for the macros */
static int hello3_data __initdata = 3;
static int __init hello_3_init(void)
{
printk(KERN_INFO "Hello, world %d\n", hello3_data);
return 0;
}
static void __exit hello_3_exit(void)
{
printk(KERN_INFO "Goodbye, world 3\n");
}
module_init(hello_3_init);
module_exit(hello_3_exit);
Makefileの
obj-m += hello.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
のhello.c: -
[email protected]:~/Kernel programs$ make
make -C /lib/modules/4.2.0-27-generic/build M=/home/k/Kernel programs modules
make[1]: Entering directory `/usr/src/linux-headers-4.2.0-27-generic'
arch/x86/Makefile:138: CONFIG_X86_X32 enabled but no binutils support
Makefile:662: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
make[1]: *** No rule to make target `programs'. Stop.
make[1]: Leaving directory `/usr/src/linux-headers-4.2.0-27-generic'
make: *** [all] Error 2
は現在、私のUbuntuは4.2カーネルを持っています。私は3.xカーネルでこれを試しましたが、この同じエラーがありました。
私を助けてください。ありがとう。 :)
'私は試してみましたが、うまくいきませんでした」 - 参照された質問の答えに示唆されているように、あなたは' binutils'を更新し、 'gcc'と'g ++'コンパイラでしょうか? – Tsyvarev
はい、私はすべてそれをした –