none
source文件里有一些语句不是很明白,欢迎指点! RRS feed

  • 问题

  • 最近想做24405.0到6.0的移植,在OAL编译过程中卡住了,始终有错误和警告。我尝试修改了source里面的一些语句发现错误就会改变,当然仍然存在。特提出此问:
    在D:\WINCE600\PLATFORM\SMDK2440A\Src\Oal\Oallib下的SOURCE里面有这么一些语句:
    TARGETNAME=oal
    TARGETTYPE=LIBRARY
    RELEASETYPE=PLATFORM
    NOMIPS16CODE=1

    CDEFINES=$(CDEFINES) -DCEDDK_USEDDKMACRO

    !IF "$(BSP_USEDVS)" == "1"
    CDEFINES=$(CDEFINES) -DDVS_EN
    !ENDIF
    后面的黑体字是什么意思啊?
    还有在D:\WINCE600\PLATFORM\SMDK2440A\Src\Oal\Oalexe目录下的SOURCE文件里:
    TARGETNAME=Oal
    TARGETTYPE=PROGRAM
    RELEASETYPE=PLATFORM
    SYNCHRONIZE_DRAIN=1
    NOMIPS16CODE=1

    EXEENTRY=StartUp

    LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO

    NOLIBC=1
    SOURCES=
    黑体字是什么意思?
    TARGETLIBS= \
        $(_TARGETPLATROOT)\lib\$(_CPUDEPPATH)\oal.lib \   这句话是指将生成OAL.LIB放在D:\WINCE600\PLATFORM\SMDK2440A\lib文件下嘛?还是需要D:\WINCE600\PLATFORM\SMDK2440A\lib目录下的OAL.LIB这个静态库呢?
        $(_COMMONOAKROOT)\lib\$(_CPUDEPPATH)\nkstub.lib \
    大家不要见笑,有些问题得搞清楚,嘿嘿~~~

    2009年9月29日 6:24

答案


  • CDEFINES=$(CDEFINES) -DCEDDK_USEDDKMACRO

    CDEFINE是向C语言的编译器传输预定义宏,相当于你在代码里写#define CEDDK_USEDDKMACRO


    !IF "$(BSP_USEDVS)" == "1"
    CDEFINES=$(CDEFINES) -DDVS_EN
    !ENDIF

    这一段是根据环境变量BSP_USEDVS的值,判断是否要在CDEFINE里面添加DVS_EN宏。

    LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO

    这一句是给链接器传命令行参数。

    最好可以详细的参考一下sources文件在msdn里面的说明。另外,最好的了解sources的文件的方法就是自己读$(_MAKEENVROOT)\makefile.def,不过前提是对makefile语法,编译器,链接器的命令行参数要熟悉。此外那个文件比较长。


    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    • 已标记为答案 无解 2009年10月10日 13:32
    2009年10月10日 2:22
    版主