亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4422 | 回復(fù): 4
打印 上一主題 下一主題

學(xué)習(xí)中遇到一個make中的問題:Makefile‘混和的隱含和普通規(guī)則’ [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-01-13 18:03 |只看該作者 |倒序?yàn)g覽
開始學(xué)習(xí)LINUX下的環(huán)境編程了,所以把系統(tǒng)也換了,換成了“Fedora 16”,運(yùn)行速度還蠻快的。但是我遇到了一些關(guān)于:Makefile‘混和的隱含和普通規(guī)則’錯誤的問題,寫到下面,老大們幫看看,這到底是些什么意思的錯誤?


   關(guān)于其中的 “%” 版主能說明下下面的意思么。

   make時的錯誤如下:
-----------------------------------------------------------------
make[1]: 進(jìn)入目錄“/work/SDK3050_old/source/vendors”
Makefile:28: *** 混和的隱含和普通規(guī)則。 停止。
make[1]: 離開目錄“/work/SDK3050_old/source/vendors”
make: *** [romfs.subdirs] 錯誤 1
-----------------------------------------------------------------
   下面我找到源代碼處:
***************************************************************
# Note: the all and clean targets are not normally used,
# since user/Makefile jumps directory to the product directory
all image clean romfs romfs.post vendor_%:
        $(MAKE) -C $(dir_v) dir_v=$(dir_v) -f $(VEND)/vendors-common.mak $@

上面這個“all ...... vendor_%:” 就是錯誤中說的第 28 行。問題就出在“vendor_%”
***************************************************************
    不知道如何去修改,說是不兼容老的makefile語法。


   下面還有一個類似的錯誤:下面是源makefile
***************************************************************
.PHONY: linux
linux linux%_only:   ====> make 中提示錯誤的就是在這里。
        @if [ $(LINUXDIR) = linux-2.4.x -a ! -f $(LINUXDIR)/.depend ] ; then \
                echo "ERROR: you need to do a 'make dep' first" ; \
                exit 1 ; \
        fi
        $(MAKEARCH_KERNEL) -j$(HOST_NCPU) -C $(LINUXDIR) $(LINUXTARGET) || exit 1
        if [ -f $(LINUXDIR)/vmlinux ]; then \
                ln -f $(LINUXDIR)/vmlinux $(LINUXDIR)/linux ; \
        fi
***************************************************************


    網(wǎng)上還有兩處這樣的錯誤解決方法:
============================================================================
工作環(huán)境: fedora14
目標(biāo)平臺:s3c2440
開發(fā)包內(nèi)核源碼目錄:/home/linux-2.6.24-5801

開發(fā)包內(nèi)核版本:2.6.24
交叉編譯工具:gcc-3.4.1
用gcc-3.4.6交叉編譯3210內(nèi)核,執(zhí)行make命令,會提示"*** 混和的隱含和普通規(guī)則。 停止。"的錯誤。這是由于fedora14的Make工具對低版本內(nèi)核Makefile一些舊的規(guī)則兼容不是很好,只需要修改一下開發(fā)包內(nèi)核原碼里的Makefile。對文件/home/linux_3210/Makefile修改如下:
把:
/ %/: prepare scripts FORCE
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
改成:
/: prepare scripts FORCE
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
%/: prepare scripts FORCE
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
把:
config %config: scripts_basic outputmakefile FORCE
    $(Q)mkdir -p include/linux include/config
    $(Q)$(MAKE) $(build)=scripts/kconfig $@
改成:
config: scripts_basic outputmakefile FORCE
    $(Q)mkdir -p include/linux include/config
    $(Q)$(MAKE) $(build)=scripts/kconfig $@
%config: scripts_basic outputmakefile FORCE
    $(Q)mkdir -p include/linux include/config
    $(Q)$(MAKE) $(build)=scripts/kconfig $@
=====================================================================

我進(jìn)在看版主的LINUX系統(tǒng)下C編程,其中講到Makefile了,學(xué)到了很多東西。有講“%”,但這里的這個錯誤,要怎么去理解呢?
謝謝

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
2 [報(bào)告]
發(fā)表于 2012-01-13 19:28 |只看該作者
安裝一個新版本的make呢?
或者
all image clean romfs romfs.post vendor_%:
        $(MAKE) -C $(dir_v) dir_v=$(dir_v) -f $(VEND)/vendors-common.mak $@
=>
all image clean romfs romfs.post :
        $(MAKE) -C $(dir_v) dir_v=$(dir_v) -f $(VEND)/vendors-common.mak $@
vendor_%:
        $(MAKE) -C $(dir_v) dir_v=$(dir_v) -f $(VEND)/vendors-common.mak $@
試試呢?

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
3 [報(bào)告]
發(fā)表于 2012-01-15 03:13 |只看該作者
%是通配符,匹配任意字符串

論壇徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
4 [報(bào)告]
發(fā)表于 2012-01-16 10:38 |只看該作者
我遇到過這種錯誤,這是因?yàn)榕f的make不支持將普通規(guī)則和隱含規(guī)則放在一起使用。將它們拆分開就可以了。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2012-02-02 18:04 |只看該作者
新年快樂!
謝謝老大!我后來好像明白了,按老大說的那樣直接拆開就好了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP