在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

相關內容