小弟在编译EBOOT的时候发现fulllibc.lib这个库一直找不到在哪里编译出来, 有人试过,依次的编译eboot的所需要的库吗?
BUILD: [01:0000000064:ERRORE] NMAKE : U1073: don't know how to make 'C:\WINCE500\PBWorkspaces\SMDK2450\WINCE500\smdk2450_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\fulllibc.lib'
楼主你是哪个平台呢? 我2440的平台source中有
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \
你看看你全面的变量值是多少 路径可能不对!
不是路径的问题。 是我特意到路径下删除了这个lib,想要验证这个lib具体由哪边编译产生。删了后就找不到在哪生成了。
删除了得编译整个源代码吧
build and sysgen
我说下我这么做的目的吧, 由于在在验证nand分区的时候修改了。pubic/common下的bootpart.cpp发现编译出来的东西不一样, 后来在eboot的source文件里发现, eboot连接的时候一直使用eboot目录下的一个bootpart.lib, 所以我对eboot所需的lib进行了研究。
fulllibc.lib 看他的路径在哪里的,然后看看到底是提供的lib还是别的驱动生成,如果是别的驱动生成,就要先编译好那个驱动先。
引用: 引用 4 楼 lyx_wq 的回复:
删除了得编译整个源代码吧
build and sysgen
由于我弄的只是eboot,所以想要局部的编译方式来编译, 现在我在重新的build and sysgen 看看是否可以生成fulllibc.lib
引用: 引用 6 楼 gooogleman 的回复:
fulllibc.lib 看他的路径在哪里的,然后看看到底是提供的lib还是别的驱动生成,如果是别的驱动生成,就要先编译好那个驱动先。
源路径是在 C:\WINCE500\PBWorkspaces\SMDK2450\WINCE500\smdk2450_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\
工程名字是 SMDK2450, 是在工程路径下的。
我发现很多时候 source指向的是这个路径下的lib,这个时候就会有个问题,当你编译common下的工程的话, 他们生成的路径会在 C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\,还有些bsp编译出来的库会在(BSP为SMDK2450)
C:\WINCE500\PLATFORM\SMDK2450\lib\ARMV4I\retail\
楼主 这个里面应该没什么问题的!我的soucre就是这样写的!不要sysgen的!直接buildeboot就可以了!最好把你的sourc贴上来看看!
source的原来的写法来说如果,如果你用build -c编译了common的里的工程,这个时候,如果你没把新的库复制到指定路径来,link的还是旧的库。
我修改过的source
!if 0
Copyright (c) Microsoft Corporation. All rights reserved.
!endif
!if 0
Use of this source code is subject to the terms of the Microsoft end-user
license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
If you did not accept the terms of the EULA, you are not authorized to use
this source code. For a copy of the EULA, please see the LICENSE.RTF on your
install media.
!endif
!if "$(WINCEDEBUG)" == "debug"
SKIPBUILD=1
!endif
!if "$(BSP_IROM_SDMMC)" == "1"
SKIPBUILD=1
!endif
TARGETNAME=eboot
TARGETTYPE=PROGRAM
RELEASETYPE=PLATFORM
EXEENTRY=StartUp
WINCECPU=1
NOMIPS16CODE=1
INCLUDES=$(INCLUDES);$(_PUBLICROOT)\common\oak\drivers\block\msflashfmd\inc;$(_TARGETPLATROOT)\Src\Common\Smartmedia\Fmd
ADEFINES=-pd "_TGTCPU SETS \"$(_TGTCPU)\"" $(ADEFINES)
CDEFINES=$(CDEFINES) -DPPSH_PROTOCOL_NOTIMEOUT -DCOREDLL
LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO
TARGETLIBS= \
C:\WINCE500\PLATFORM\SMDK2450\lib\ARMV4I\retail\oal_memory_s3c2450.lib \
!IF "$(BSP_TYPE)"=="$(BSP_SMDK2443)"
C:\WINCE500\PLATFORM\SMDK2450\lib\ARMV4I\retail\oal_cache_s3c2450_920.lib \
!ENDIF
!IF "$(BSP_TYPE)"=="$(BSP_SMDK2450)"
C:\WINCE500\PLATFORM\SMDK2450\lib\ARMV4I\retail\oal_cache_s3c2450_926.lib \
!ENDIF
\
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\kitleth.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_log.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blnk.lib \
\
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\blcommon.lib \
C:\WINCE500\PLATFORM\SMDK2450\lib\ARMV4I\retail\cs8900dbg_eboot.lib \
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\bootpart.lib \
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\eboot.lib \
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\ne2kdbg.lib \
C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\ddk_io.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\smflash_lib.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \
#C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\fulllibc.lib \
#$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\cs8900dbg.lib \
SOURCES= \
startup.s \
util.s \
nand.s \
main.c \
debug.c \
ether.c \
flash.c \
nand.cpp \
usb.c \
usbs.s \
WINCETARGETFILES=BootImage
原来的。
TARGETLIBS= \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_memory_s3c2450.lib \
!IF "$(BSP_TYPE)"=="$(BSP_SMDK2443)"
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_cache_s3c2450_920.lib \
!ENDIF
!IF "$(BSP_TYPE)"=="$(BSP_SMDK2450)"
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_cache_s3c2450_926.lib \
!ENDIF
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_kitl.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_log.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blnk.lib \
应该是系统代码build的时候产生的lib,或者安装PB的时候就有的,只是在copyfiles的时候复制到了工程目录里边
引用: 引用 13 楼 veabol 的回复:
应该是系统代码build的时候产生的lib,或者安装PB的时候就有的,只是在copyfiles的时候复制到了工程目录里边
我现在认为是在安装后就有的, 因为我从别台的电脑上发现这个库的时间是2006年的,那个时候都还没这个电脑呢。 应该是从什么地方复制过来的。 不过,这个库有点特别,我从别台电脑拷贝过来后,发现无法使用。会报错误。 不懂这个lib,和pdb有啥讲究的地方。
我怎么感觉你的source中怪怪的!!
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \
#C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\fulllibc.lib \
这是什么意思??这些lib应该早就生成了。在build eboot时 会按路径去找相应的lib。可以尝试下 pb中的copy file to release Directory
引用: 引用 15 楼 xuefeng_baggio 的回复:
我怎么感觉你的source中怪怪的!!
? $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib? \
#C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\fulllibc.lib? \
这是什么意思??这些lib应该早就生成了。在build eboot时 会按路径去找相应的lib。可以尝试下 pb中的copy file to release Directory
这个是修改过的。 我现在做的就是要验证,每个的LIB是从哪里编译出来的,这样有助于修改后的link, 我指定了一些路径,就是避免一些lib后需要copy的动作,可以直接再编译eboot,就直接生成了。
郁闷。。。 难道需要重新安装 PB了。。。 发现PB真破。。。
引用: 引用 17 楼 lxjlan 的回复:
郁闷。。。 难道需要重新安装 PB了。。。 发现PB真破。。。
这个问题很急呀。。。 各位帮帮忙。。。