Discussion Board

Results 1 to 8 of 8
  1. #1
    Registered User huan23's Avatar
    Join Date
    Sep 2006
    Posts
    51
    问下过来人:

    我用abld buils wins udeb编译SyExpat生成了SYEXPAT.DLL和SYEXPAT.lib,在模拟器上使用没有问题,但是想上真机的时候用armi编译应用就报错了,说找不到对应的Epoc32\release\armi\urel\SYEXPAT.lib。

    我用abld build armi udeb和abld build armi urel编译SYEXPAT出错,
    试着把Epoc32\release\wins\udeb\SYEXPAT.lib考到release\armi\urel\SYEXPAT.lib也不行

    请教下怎么在armi下生成SyExpat的dll和lib文件啊?

    我用的还是低版本的Series60_v21_C,谢谢。

  2. #2
    Regular Contributor Skygyl's Avatar
    Join Date
    May 2004
    Posts
    462
    Quote Originally Posted by huan23
    我用abld buils wins udeb编译SyExpat生成了SYEXPAT.DLL和SYEXPAT.lib,在模拟器上使用没有问题,但是想上真机的时候用armi编译应用就报错了,说找不到对应的Epoc32\release\armi\urel\SYEXPAT.lib。
    在这之前,应该有其他编译错误。看看是不是因为其他的错误而生不成lib.

  3. #3
    Super Contributor liuxg's Avatar
    Join Date
    Mar 2003
    Location
    Beijing
    Posts
    3,609
    The build for WINS definitely cannot be used for ARMI. You have to check the errors during your build for armi as pointed in the last post. Clearly, your build for armi is not successful.

    Liuxg
    Forum Nokia

  4. #4
    Registered User huan23's Avatar
    Join Date
    Sep 2006
    Posts
    51
    D:\SyExpat-2\Symbian>abld build armi urel
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\EXPOR
    T.make" EXPORT VERBOSE=-s
    Nothing to do
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\ARMI.
    make" MAKEFILE VERBOSE=-s
    perl -S makmake.pl -D \SYEXPAT-2\SYMBIAN\SYEXPAT ARMI
    WARNING: Frozen .DEF file \SYEXPAT-2\BMARM\SYEXPATU.DEF not found - project not
    frozen
    perl -S makmake.pl -D \SYEXPAT-2\SYMBIAN\EXAMPLES\ELEMENTS ARMI

    WARNING: Can't find following headers in User or System Include Paths
    "SYEXPAT.H"
    (User Inc Paths "\SYEXPAT-2\SYMBIAN\EXAMPLES\")
    Dependency list for "\SYEXPAT-2\SYMBIAN\EXAMPLES\ELEMENTS.CPP" may be incomplete



    WARNING: Can't find following headers in User or System Include Paths
    "SYEXPAT.H"
    (User Inc Paths "\SYEXPAT-2\SYMBIAN\EXAMPLES\")
    Dependency list for "\SYEXPAT-2\SYMBIAN\EXAMPLES\XMLHELPER.CPP" may be incomplet
    e

    perl -S makmake.pl -D \SYEXPAT-2\SYMBIAN\EXAMPLES\PARSEFILE ARMI

    WARNING: Can't find following headers in User or System Include Paths
    "SYEXPAT.H"
    (User Inc Paths "\SYEXPAT-2\SYMBIAN\EXAMPLES\")
    Dependency list for "\SYEXPAT-2\SYMBIAN\EXAMPLES\PARSEFILE.CPP" may be incomplet
    e


    WARNING: Can't find following headers in User or System Include Paths
    "SYEXPAT.H"
    (User Inc Paths "\SYEXPAT-2\SYMBIAN\EXAMPLES\")
    Dependency list for "\SYEXPAT-2\SYMBIAN\EXAMPLES\XMLHELPER.CPP" may be incomplet
    e

    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\ARMI.
    make" LIBRARY VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\SYEX
    PAT\ARMI\SYEXPAT.ARMI" LIBRARY
    Not attempting to create "..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\RELEASE\ARMI\
    UREL\SYEXPAT.lib"
    from frozen .DEF file, since EXPORTUNFROZEN specified.
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\EXAM
    PLES\ELEMENTS\ARMI\ELEMENTS.ARMI" LIBRARY
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\EXAM
    PLES\PARSEFILE\ARMI\PARSEFILE.ARMI" LIBRARY
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\ARMI.
    make" RESOURCE CFG=UREL VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\SYEX
    PAT\ARMI\SYEXPAT.ARMI" RESOURCEUREL
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\EXAM
    PLES\ELEMENTS\ARMI\ELEMENTS.ARMI" RESOURCEUREL
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\EXAM
    PLES\PARSEFILE\ARMI\PARSEFILE.ARMI" RESOURCEUREL
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\ARMI.
    make" TARGET CFG=UREL VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\SYEX
    PAT\ARMI\SYEXPAT.ARMI" UREL
    .\\Syexpat.cpp: In method `enum TSyExpatError CExpatParserBase::GetErrorCode() c
    onst':
    .\\Syexpat.cpp:381: static_cast from `XML_Error' to `TSyExpatError'
    .\\Syexpat.cpp:382: warning: control reaches end of non-void function `CExpatPar
    serBase::GetErrorCode() const'
    make[1]: *** [..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\S
    YEXPAT\ARMI\UREL\SYEXPAT.o] Error 1
    make: *** [TARGETSYEXPAT] Error 2
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\SYEXPAT-2\SYMBIAN\ARMI.
    make" FINAL CFG=UREL VERBOSE=-s

  5. #5
    Registered User huan23's Avatar
    Join Date
    Sep 2006
    Posts
    51
    .\\Syexpat.cpp:381: static_cast from `XML_Error' to `TSyExpatError'的代码是

    // Parse position and error reporting functions
    IMPORT_C TSyExpatError CExpatParserBase::GetErrorCode() const
    {
    return STATIC_CAST(TSyExpatError,XML_GetErrorCode(REINTERPRET_CAST(XML_Parser,iParser)));
    }


    我觉得不是这里的问题吧,abld build wins udeb都能通过。还望哪位帮小弟一把,谢先!

  6. #6
    Regular Contributor Skygyl's Avatar
    Join Date
    May 2004
    Posts
    462
    SYEXPAT.H cannot be found. Check your include path settings.

    I think some others also face the same problem, and has solved the problem. Search the forum

  7. #7
    Super Contributor r60600's Avatar
    Join Date
    Feb 2004
    Posts
    1,980
    对于含有.dll的目标类型,命令行编译一般这样:

    >bldmake bldfiles

    >abld freeze

    >abld build armi urel

    否则就会有:
    WARNING: Frozen .DEF file \SYEXPAT-2\BMARM\SYEXPATU.DEF not found - project not frozen
    之类的错误。

  8. #8
    Registered User huan23's Avatar
    Join Date
    Sep 2006
    Posts
    51
    按照上面的出错提示,我把下面的代码
    IMPORT_C TSyExpatError CExpatParserBase::GetErrorCode() const
    {
    return STATIC_CAST(TSyExpatError,XML_GetErrorCode(REINTERPRET_CAST(XML_Parser,iParser)));
    }

    暂时改成
    IMPORT_C TSyExpatError CExpatParserBase::GetErrorCode() const
    {
    return ESyExpatErrorNone;//STATIC_CAST(TSyExpatError,XML_GetErrorCode(REINTERPRET_CAST(XML_Parser,iParser)));
    }

    通过了编译,生成了armi下的dll和lib文件。但是在编译自己的应用程序时出现了下面错误。
    其中类似undefined reference to `CSyParser::NewLC(TDesC16 const &)'的错误,CSyParser::NewLC应该编译在dll文件中了啊,并且在SyExpat.h有声明,而且我系统路径也包含了SyExpat.h,.mmp中也包含了SyExpat.lib。怎么会找不到函数定义呢?
    PS:我在wins下编译运行都没有问题,我查了下论坛,说是armi下不能用全局变量,但是我没有用全局变量啊。看下面的错误信息难道是编译dll文件的时候还有什么问题?

    D:\Work\EnXMLParser\group>abld build armi urel
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    EXPORT.make" EXPORT VERBOSE=-s
    Nothing to do
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    ARMI.make" MAKEFILE VERBOSE=-s
    perl -S makmake.pl -D \WORK\ENXMLPARSER\GROUP\ENXMLPARSER ARMI

    MMPFILE "\WORK\ENXMLPARSER\GROUP\ENXMLPARSER.MMP"
    WARNING(S)
    \WORK\ENXMLPARSER\GROUP\ENXMLPARSER.MMP(34) : Duplicate SYSTEMINCLUDE path \WORK
    \ENXMLPARSER\GROUP\ at line \WORK\ENXMLPARSER\GROUP\ENXMLPARSER.MMP(32)

    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    ARMI.make" LIBRARY VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP
    \ENXMLPARSER\ARMI\ENXMLPARSER.ARMI" LIBRARY
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    ARMI.make" RESOURCE CFG=UREL VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP
    \ENXMLPARSER\ARMI\ENXMLPARSER.ARMI" RESOURCEUREL
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    ARMI.make" TARGET CFG=UREL VERBOSE=-s
    make -s -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP
    \ENXMLPARSER\ARMI\ENXMLPARSER.ARMI" UREL
    ..\\SRC\\Xmlhelper.cpp: In method `void CDocumentHandler::EndElement(const struc
    t TQualified &)':
    ..\\SRC\\Xmlhelper.cpp:242: warning: unused variable `class TPtrC tmp'
    ..\\SRC\\Xmlhelper.cpp: In method `void CDocumentHandler::CharacterData(const cl
    ass TDesC &)':
    ..\\SRC\\Xmlhelper.cpp:601: warning: unused variable `class TPtrC tmp'
    ..\\SRC\\Xmlhelper.cpp:595: warning: unused variable `class TLitC<3> const KElem
    entFormatString'
    ..\\SRC\\Xmlhelper.cpp: In method `void CDeclarationHandler::Indent(TInt)':
    ..\\SRC\\Xmlhelper.cpp:998: warning: unused variable `class TLitC<4> const KTab'

    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x2d4):En
    xmlparserapp: undefined reference to `CSyParser::NewLC(TDesC16 const &)'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x2d4):En
    xmlparserapp: relocation truncated to fit: ARM_26 CSyParser::NewLC(TDesC16 const
    &)
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x2f0):En
    xmlparserapp: undefined reference to `CExpatParserBase::SetHandler(MSyDocHandler
    *)'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x2f0):En
    xmlparserapp: relocation truncated to fit: ARM_26 CExpatParserBase::SetHandler(M
    SyDocHandler *)
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x308):En
    xmlparserapp: undefined reference to `CExpatParserBase::SetHandler(MSyDeclHandle
    r *)'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x308):En
    xmlparserapp: relocation truncated to fit: ARM_26 CExpatParserBase::SetHandler(M
    SyDeclHandler *)
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x35c):En
    xmlparserapp: undefined reference to `CExpatParserBase::Parse(TPtrC8, int)'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x35c):En
    xmlparserapp: relocation truncated to fit: ARM_26 CExpatParserBase::Parse(TPtrC8
    , int)
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x370):En
    xmlparserapp: undefined reference to `CExpatParserBase::GetCurrentLineNumber(voi
    d) const'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x370):En
    xmlparserapp: relocation truncated to fit: ARM_26 CExpatParserBase::GetCurrentLi
    neNumber(void) const
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x37c):En
    xmlparserapp: undefined reference to `CExpatParserBase::GetCurrentColumnNumber(v
    oid) const'
    ..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\ENXMLPA
    RSER\ARMI\UREL\ENXMLPARSER.in(../../../SYMBIAN/7.0S/SERIES60_V21_C/EPOC32/BUILD/
    WORK/ENXMLPARSER/GROUP/ENXMLPARSER/ARMI/UREL/ENXMLPARSERAPPUI.o)(.text+0x37c):En
    xmlparserapp: relocation truncated to fit: ARM_26 CExpatParserBase::GetCurrentCo
    lumnNumber(void) const
    make[1]: *** [..\..\..\SYMBIAN\7.0S\SERIES60_V21_C\EPOC32\RELEASE\ARMI\UREL\ENXM
    LPARSER.APP] Error 1
    make: *** [TARGETENXMLPARSER] Error 2
    make -r -f "\Symbian\7.0s\Series60_v21_C\EPOC32\BUILD\WORK\ENXMLPARSER\GROUP\
    ARMI.make" FINAL CFG=UREL VERBOSE=-s
    Last edited by huan23; 2006-09-21 at 04:13.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved