在编译内核的时候,出现如下错误:
LD pie/pie_stage2.o
arm-linux-gnueabihf-ld: BFD (GNU Binutils for Ubuntu) 2.22 internal error, aborting at ../../bfd/elflink.c line 8758 in elf_link_output_extsym
arm-linux-gnueabihf-ld: Please report this bug.
make[1]: *** [pie/pie_stage2.o] Error 1
make: *** [vmlinux] Error 2
我的主机环境是ubuntu 12.04 都是按照文档的步骤做的。
_Sai
December 8, 2014, 8:21am
3
楼主的Ubuntu是新装的吗?如果确认步骤都一样,而且安装的软件都装成功了,建议检查一下Ubuntu自身的软件更新情况
到不是新装的,我用很久了!在另一台新装的ubuntu上也会出现这样的情况。不过我的软件到是没有跟新!那我试试将我的ubuntu软件更新一下吧!
问题解决了,编译器的问题!我直接将交叉编译工具指向了android的sdk中的交叉编译工具链。
export CROSS_COMPILE=/mnt/lizy/Documents/src_code/rk3288_r-box_android4.4.2_sdk/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
error结构体 发表于 2014-12-9 11:13
交叉工具链应用是配好了的,应该不用手的。
我是在wiki的Linux开发中,按照步骤编译内核 其中要单独安装编译工具。导出变量export CROSS_COMPILE=arm-linux-gnueabihf-后编译不通过,后来我check out了sdk代码直接编译是没问题的!
error结构体 发表于 2014-12-9 11:13
交叉工具链应用是配好了的,应该不用手的。
从内核的Makefile设置编译器路径可以看出,编译器是依赖SDK的。
connet
December 9, 2014, 1:49pm
10
需要那么复杂吗?下载的的代码里面有编译器,新装的fedora20下直接make没问题的。
isle
December 10, 2014, 1:10am
11
这个看你怎么编 :
kernel直接放在sdk目录中就什么不用设置 直接make就行了。
如果是把kernel源码单独拿出来就需要设置啦。当然把prebuilts目录考出来一样直接make就行啦。说白了就是找到交叉工具链路径了。
sky000
December 16, 2014, 8:53am
12
就是要怎么改??环境变量怎么设置??感觉Makefile写成绝对路径有问题!!