在 ubuntu 中编译文件时出错

在 ubuntu 中编译文件时出错
odroid@odroid:~/Modules$ make
make -C /usr/src/linux-headers-3.10.96-150 SUBDIRS=/home/odroid/Modules modules
make[1]: Entering directory `/usr/src/linux-headers-3.10.96-150'
  CC [M]  /home/odroid/Modules/Hello.o
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LC_TIME = "es_US.UTF-8",
    LC_CTYPE = "en_US.UTF-8",
    LC_MONETARY = "es_US.UTF-8",
    LC_COLLATE = "C",
    LC_ADDRESS = "es_US.UTF-8",
    LC_TELEPHONE = "es_US.UTF-8",
    LC_MESSAGES = "en_US.UTF-8",
    LC_NAME = "es_US.UTF-8",
    LC_MEASUREMENT = "es_US.UTF-8",
    LC_IDENTIFICATION = "es_US.UTF-8",
    LC_NUMERIC = "C",
    LC_PAPER = "es_US.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
In file included from /usr/src/linux-headers-3.10.96-150/arch/arm/include/asm/page.h:163:0,
                 from include/linux/mmzone.h:20,
                 from include/linux/gfp.h:4,
                 from include/linux/kmod.h:22,
                 from include/linux/module.h:13,
                 from /home/odroid/Modules/Hello.c:1:
/usr/src/linux-headers-3.10.96-150/arch/arm/include/asm/memory.h:22:25: fatal error: mach/memory.h: No such file or directory
 #include <mach/memory.h>
                         ^
compilation terminated.
make[2]: *** [/home/odroid/Modules/Hello.o] Error 1
make[1]: *** [_module_/home/odroid/Modules] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.10.96-150'
make: *** [all] Error 2

答案1

这是一个已知问题在 Odroid 内核头包中。memory.h应该位于您系统的某个位置,但不在编译器正在寻找它的正确位置。

尝试memory.h使用

find /usr | grep mach/memory.h

找到文件后,将其符号链接到正确的位置

sudo ln -s /path/to/mach /usr/src/linux-headers-`uname -r`/arch/arm/include/

如果你确实没有该文件,请从github

相关内容