像我儿子一样永远保持好奇和梦想

[o][Q004][make]编译问题实例 - bison 编译错误:

上一篇 / 下一篇  2012-09-27 17:39:29 / 个人分类:linux

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台1?a8`9C g(?Hr

做QT移植时候,用到bison工具,编译时候,因为系统ubuntu是从头安装的,经常遇到编译时候确实一些工具连接到问题,bison编译时候也遇到了一次:

y0_$`|SK0

v5cI;^$V_:}0


1 bison的makefile,将网上下来的bison包直接解压到指定的文件夹并进行编译:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台,y![{8q st's&F/U[$I_N

k:`m;v7v*@j0BISON_SOURCE:=bison-$(BISON_VERSION).tar.bz2
K @`N.@6^s0BISON_DIR:=$(TARGT_BOARD_ROOT)/bison/bison-$(BISON_VERSION)

|%iG:RjDoQ#|0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台,|.ac$} t r

all: $(BISON_DIR)/.configured龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 Bb`i,R$nTQ_;h
 $(MAKE) -C $(BISON_DIR) all install龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台-{$^(t Y cj\

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 gHd{3m\5E

$(BISON_DIR)/.unpacked: $(TARGT_BOARD_ROOT)/bison/$(BISON_SOURCE)
Dc#GW,`W(h0 bzcat $(TARGT_BOARD_ROOT)/bison/$(BISON_SOURCE) | tar -C $(TARGT_BOARD_ROOT)/bison -xf -
;R;o6KTOM!e0 touch $@

8CkW'@0m8s0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 I$Ax)Vx"D+X

$(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台cx9S]&l4Rk
 (cd $(BISON_DIR); rm -rf config.cache; \
L5Z;q ~}~1I[Jd0                gt_cv_func_gnugettext2_libintl=yes \龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Cs8r2t{
                ./configure \龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台0fPh|6G#hmY
                --prefix=$(NXP_BASE_ROOT)/ \龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台4i(u#}] cwza {
                --quiet > /dev/null 2>&1 \龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台~V7^f K6yzd
        )
?9R w!Ce?:z0 touch $@龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台5{Z#FHMP%B

f)ap'lt0clean:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台@1\1K g3lv*U

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台7n o(W `7mV \


2 编译遇到问题如下log:

0Og)Z!Wc[%^,g0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台8o4}qRl

Building Bison

uNBqa.P\+V8p7w+?0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台W8g+S)]rs

make -C /bison BISON_VERSION=2.4.1
9D4{g'O;LrC0bzcat /bison/bison-2.4.1.tar.bz2 | tar -C /bison -xf -
o4_ ]gJUv(yT6U5| ?0touch //bison/bison-2.4.1/.unpacked
8n\j[*g.oG6m!H0(cd /bison/bison-2.4.1; rm -rf config.cache; \
dv"Z%g/bb T0                gt_cv_func_gnugettext2_libintl=yes \
,z@9o TR?D0                ./configure \龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Tw n&RA*[(f
                --prefix=/home/wine/kronos/root/host/linux \
;ij ^&N%[!TM ~ N bK0                --quiet > /dev/null 2>&1 \
XS q UP0        )龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Z:{7^b0O;W2gO
make[3]: *** [/bison/bison-2.4.1/.configured] Error 1龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台'Z4_ta L,H-O|}
gmake[2]: *** [check_bison] Error 2龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台_!po&t.Ieb E

8`6z&q5b;AE.PTN;z[ \]0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 P4C7U0n{jP


3 问题分析:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台7M,Nr+S/g2s}`9P"j

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 h|'E ZXQ.d8t

首先,分析make做了哪些工作,是不是和makefile说的一致,

RV6sJ)PnxV&S#v0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台sQ#Od:]DB'Z0A

我们看到基本相同,也做了解包的工作,解包后没有立即去做gmake(qt用到make)而是,先去做了.configure...的配置

N`)d-x9Us+tXzo9L0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台sN3p E!U1\ e c9z

可是我们只有一个tar包,哪来的.configure龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台jX@YUE2a

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台u F.w0Y)_

回到上级目录,才发现其实已经解了一个2.4.1的包

"Jr b+vp\7e5H0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台(G6_:Mx0E6H0Y

进去后发现确实有configure文件,于是立即执行.configure龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台p Tx uA6lT1c'bb

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 p?|#KF

发现如下问题:

+B1n N/X)uh(K-do0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台(b0ELG|

checking for gnum4... no龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台mG X$f&L
checking for m4... no龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台h[G CG`+c
checking whether m4 supports frozen files... no龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台+_/`2nh!G4K
configure: error: GNU M4 1.4 is required龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台M`;FOZ:vdC

$w8{'u;VB6A4n3lx0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台*[.i] Lo3|?e0qz!?

看来问题确实是出在error1 处的configure

!C9\/WZ TI'W@?0

@l)S T[ b0由于是新装系统,没有安装m4,所以重新安装再编译就好了

5t-K@7e] `r2{0

u)F4uQ^K0


调试小结:

f XH'Ppz0

'q? `X e0遇到编译问题,首先要认真研读log,同时一定要注意error1处的描述,其实make工具以及写的很清楚了龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台A}0F5t@8g!t

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台1~i.j.c |5H#k\

然后,再回过头去看makefile文件,对比逐一执行情况,应该就能调试处编译的问所在龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台-A*a*dj {2|-wq6@
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台O2@0OSZ m

 

#qcIcHY!w7p0

!iS1? ji;v0\Bhh0

8o)bszbDF@0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台W r8j7yG w*h


本帖原创:by huang.makin@gmail.com

;i(a?Q Ofpb W-S V0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台,qu2H!P!r1i C SVz

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台(c9tL#KlM(lCBSM

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 L5[9JB N!J;KS$Y0t'c


3

A6`3y@ ~%i*d0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台oh-|&fCq

q-b6~cX4p@iSDZ0 

7pj@R Z&n0

TAG: makefile Makefile 编译 bison

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar