none
2440的WinCE5.0 BSP编译问题 RRS feed

  • 问题

  • 最近在编译2440的三星官方BSP的时候,总是无法成功,提示9个错误,都是一样的错误:
    ... ...
    BUILD: [01:0000000941:ERRORE] c:\WINCE500\PLATFORM\SMDK2440\Src\Drivers\SDBUS\sddevice.hpp(151) : error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder'
    BUILD: [01:0000000943:PROGC ] Compiling .\sddevice.cpp
    BUILD: [01:0000000946:ERRORE] c:\WINCE500\PLATFORM\SMDK2440\Src\Drivers\SDBUS\sddevice.hpp(151) : error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder'
    BUILD: [01:0000000948:ERRORE] c:\WINCE500\PLATFORM\SMDK2440\Src\Drivers\SDBUS\sddevice.cpp(1643) : error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder'
    BUILD: [01:0000000950:PROGC ] Compiling .\sdbus.cpp
    BUILD: [01:0000000953:ERRORE] c:\WINCE500\PLATFORM\SMDK2440\Src\Drivers\SDBUS\sddevice.hpp(151) : error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder'
    BUILD: [01:0000000955:PROGC ] Compiling .\sdslot.cpp
    ... ...

    都是说error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder'
    我察看了源码,的确DeviceFolder对象的类中没有成员IsDriverLoaded

    但是这是厂家提供的BSP源码呀,不应该编译不过啊,想必一定有大侠也遇到过这个问题,怎么解决的,望指教!
    我也在等厂家技术支持的回复,如果解决了该问题,我也会贴上来大家分享。
    菜心里的虫
    2009年3月30日 10:15

答案

全部回复

  • 更奇怪的是,我把跟SD相关的选项都去掉了,但是编译竟然还是卡在SD卡相关的代码上:

    BUILD: [Thrd:Sequence:Type  ] Message
    BUILD: [01:0000000873:ERRORE] sdiocontroller.obj : error LNK2019: unresolved external symbol "public: __cdecl CSDIOControllerBase::CSDIOControllerBase(struct SDCARD_HC_CONTEXT *)" (??0CSDIOControllerBase@@QAA@PAUSDCARD_HC_CONTEXT@@@Z) referenced in function "public: __cdecl CSDIOController::CSDIOController(struct SDCARD_HC_CONTEXT *)" (??0CSDIOController@@QAA@PAUSDCARD_HC_CONTEXT@@@Z)

    BUILD: [01:0000000874:ERRORE] SC2440_SDHCBase.lib(sdhcmain.obj) : error LNK2019: unresolved external symbol "class CSDIOControllerBase * __cdecl CreateSDIOController(struct _SDCARD_HC_CONTEXT *)" (?CreateSDIOController@@YAPAVCSDIOControllerBase@@PAU_SDCARD_HC_CONTEXT@@@Z) referenced in function SDH_Init

    BUILD: [01:0000000875:ERRORE] C:\WINCE500\platform\smdk2440\target\ARMV4I\retail\SDHC_SC2440.dll : fatal error LNK1120: 2 unresolved externals

    说是类CSDIOControllerBase的构造函数没有找到声明,可是SD和SDIO相关的选项我都删掉并且完全重新编译的呀。


    菜心里的虫
    2009年3月30日 10:24
  • 你的最新QFE打了没?
     如果没打,先把pb重装一次再打QFE,这样保证一些,之前我开发时,没打QFE也老发现一些奇怪的问题,后来重装PB再打上最新的QFE就OK了

    2009年4月1日 0:34
  • 谢谢kaianli的提示,我会尝试一下,不过搜了半天,不知道最新的QFE在哪下载?
    不过我估计可能是PB的某个patch没打,但是微软网站上也找不到PB5.0的patch。
    菜心里的虫
    2009年4月1日 1:54
  • 你再详细看一下BSP相关的DATASHEET,可能会在里面有说明要安装某些补丁包的。韩国公司还是比较细心的

    2009年4月1日 3:29
  • BSP的手册已经仔细看了很多遍了,没有提到补丁的事情。事实上编译错误信息我都提交给三星的技术支持了,只是还没有告诉我怎么解决。


    菜心里的虫
    2009年4月1日 3:44
  • 楼主,你好

    如果是关于第三方问题的你最好是联系第三方的技术支持。
    Microsoft Online Community Support
    2009年4月1日 6:01
  • 谢谢KeFang, 我并不是在使用第三方的开发平台,我们自己的电路。


    菜心里的虫
    2009年4月1日 7:08
  • 先用true或false代替这个变量吧,别卡在这了。

    2009年4月1日 9:23
  • QFE 上ms的网站就能下到,你去下一个2008的全年QFE 就行了,2009那些可先不打,
    你上ms search一下  PB update 2008 应该能找到的
    2009年4月2日 1:02
  • 实在没有办法,只好先采用了rushon建议的方法,把BSP_NOSD设置了,这样整个跟SD相关的代码都不编译了,现在就编译成功了。
    不过SD卡驱动迟早还是个问题...


    菜心里的虫
    2009年4月2日 6:43
  • defbus.h中的DeviceFolder类里面自己要加上 BOOL    IsDriverLoaded();//{ return m_hDevice!=NULL; };//2010.3.15 for 2440
    加上后编译通过
    2010年3月15日 5:12