库的链接问题(网上论坛上收集的,相信有不少人有这个困惑)

WINCE驱动如何调用其他文件(DLL)中的函数

到现在一直很糊涂,不知道怎么在WINCE驱动里设置头文件或者sources文件来调用其他文件中或者dll中的函数.
现在我想在C:\WINCE500\PLATFORM\ZYLONITE_MHL\SRC\DRIVERS\BACKLIGHT\PDD下backlight.cpp文件里调用
C:\WINCE500\PLATFORM\COMMON\SRC\SOC\pxa3xx\OAL\RTC
rtc.c里的函数OEMGetRealTime()和OEMSetRealTime()函数.
参考了电池驱动函数,因为电池驱动里调用了OEMGetRealTime()函数.
C:\WINCE500\PLATFORM\ZYLONITE_MHL\SRC\DRIVERS\BATTDRVR\PDD下的sources文件如下:

SYNCHRONIZE_DRAIN=1

TARGETNAME=battdrvr
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK

TARGETLIBS= \
  $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\pxa255_drvlib.lib \
       

INCLUDES=$(INCLUDES)

SOURCELIBS= \
        $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\battdrvr_lib.lib \
#        $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\drvlib.lib

DEFFILE=zylonite_battdrvr.def

SOURCES = \
        battery_pdd.c \
        ds2781.cpp
------------------------------------------------
现在设置C:\WINCE500\PLATFORM\ZYLONITE_MHL\SRC\DRIVERS\BACKLIGHT\PDD下的sources文件如下,

TARGETNAME=zylonite_backlight_pdd
TARGETTYPE=LIBRARY

!IF "$(RETAIL_DEBUG)" == "1"
CDEFINES=$(CDEFINES) -DRETAIL_DEBUG
!ENDIF

TARGETLIBS= \
  $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\pxa255_drvlib.lib \

INCLUDES=$(INCLUDES)

SOURCES=  \
    backlight.cpp \
编译结果是报错:
BUILD: [01:0000000776:ERRORE] NMAKE :  U1073: don't know how to make 'C:\WINCE500\platform\ZYLONITE_MHL\lib\ARMV4I\retail\zylonite_backlight_pdd.lib'
BUILD: [01:0000000778:ERRORE] NMAKE.EXE   -i -c BUILDMSG=Stop.  LINKONLY=1 NOPASS0=1 MAKEDLL=1 failed - rc = 2
 
 
 
这时rtc.c的source文件:

TARGETNAME=oal_rtc_pxa3xx
TARGETTYPE=LIBRARY
SYNCHRONIZE_DRAIN=1
NOMIPS16CODE=1

CDEFINES=$(CDEFINES) -DCEDDK_USEDDKMACRO

INCLUDES= \
    $(_PLATFORMROOT)\common\src\soc\pxa3xx\inc; \
    $(_PLATFORMROOT)\common\src\soc\pxa3xx\XLLP_processor\include; \
    $(_PLATFORMROOT)\common\src\soc\pxa3xx\oal\inc; \
    $(_TARGETPLATROOT)\src\inc; \
    $(_TARGETPLATROOT)\src\drivers\xllp_plat\include      

SOURCES= \
    rtc.c

那么我只要在backlight.cpp的sources文件里加入
TARGETLIBS= \
  $(_PLATCOMMONLIB)\$(_CPUDEPPATH)\oal_rtc_pxa3xx.lib

就可以了吗,我正在编译,一会看看结果,希望会好了.但是没有看见ds2781.cpp的sources文件里有这个oal_rtc_pxa3xx.lib加入
 
 
 
找到OEMGetRealTime函数所在的RTC驱动,看它的sources文件,看生成什么,生成什么这个驱动的sources就就链接什么呗。
注意不能直接连接DLL,要连接lib。!!!!!!!!

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值