following symbols must have non local/private scope错误问题解决方法
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: ‘include/generated/mach-types.h’ is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
Kernel: arch/arm/boot/Image is ready
LD arch/arm/boot/compressed/vmlinux
following symbols must have non local/private scope:
ddd
$d
該問題可能會有很少的人會遇到,所以遇到了也很難找到答案。
最后排查發現,是因為CROSS_COMPILE這個變量問題,編譯是需要導出這個CROSS_COMPILE變量的,如果沒有導出它就會報上面的錯誤。
解決辦法就是傳入CROSS_COMPILE參數CROSS_COMPILE=arm-buildroot-linux-uclibcgnueabihf-,或者在makefile中指定它的定義。
從這里可以知道編譯內核直接指定CC、AR等是不行的,需要通過CROSS_COMPILE來處理。
總結
以上是生活随笔為你收集整理的following symbols must have non local/private scope错误问题解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: buildroot 问题
- 下一篇: Linux shell控制台改变显示前缀