【问题】
折腾:
【记录】Ubuntu下用crosstool-ng为xscale建立交叉编译器arm-xscale-linux-gnueabi-gcc
出错:
[INFO ] ================================================================= [INFO ] Installing kernel headers [EXTRA] Installing kernel headers [ERROR] /home/crifan/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/linux-custom/scripts/unifdef.c:209:25: error: conflicting types for 'getline' [ERROR] make[3]: *** [scripts/unifdef] Error 1 [ERROR] make[2]: *** [headers_install] Error 2 [ERROR] make[1]: *** [headers_install] Error 2 [ERROR] [ERROR] >> [ERROR] >> Build failed in step 'Installing kernel headers' [ERROR] >> called in step '(top-level)' [ERROR] >> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257] [ERROR] >> called from: do_kernel_install[scripts/build/kernel/linux.sh@112] [ERROR] >> called from: do_kernel_headers[scripts/build/kernel/linux.sh@91] [ERROR] >> called from: main[scripts/crosstool-NG.sh@632] Current command: 'make' '-C' '/home/crifan/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/linux-custom' 'O=/home/crifan/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-kernel-headers' 'ARCH=arm' 'INSTALL_HDR_PATH=/home/crifan/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/arm-xscale-linux-gnueabi/sysroot/usr' 'V=0' 'headers_install' exited with error code: 2 Please fix it up and finish by exiting the shell with one of these values: 1 fixed, continue with next build command 2 repeat this build command 3 abort build ct-ng:~/develop/crosstool-ng/crosstool-ng-1.18.0_build>
即:
scripts/unifdef.c:209:25: error: conflicting types for ‘getline’ |
【解决过程】
1.这个是之前就遇到的,所以参考之前的:
去修改
crifan@ubuntu:~/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/linux-custom/scripts$ pwd /home/crifan/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/linux-custom/scripts crifan@ubuntu:~/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/linux-custom/scripts$ gedit unifdef.c
为:
//static Linetype getline(void); static Linetype get_line(void); for (;;) { linenum++; //lineval = getline(); lineval = get_line(); trans_table[ifstate[depth]][lineval](); static Linetype //getline(void) get_line(void) {
即可。
【总结】
当出现:
scripts/unifdef.c:209:25: error: conflicting types for ‘getline’ |
修改linux下面的scripts/unifdef.c把(共3处的)getline改为别的名字,比如get_line:
//static Linetype getline(void); static Linetype get_line(void); for (;;) { linenum++; //lineval = getline(); lineval = get_line(); trans_table[ifstate[depth]][lineval](); static Linetype //getline(void) get_line(void) {
即可。
转载请注明:在路上 » 【已解决】Ubuntu中crosstool-ng编译出错:scripts/unifdef.c:209:25: error: conflicting types for ‘getline’