×

Discussion Board

Results 1 to 4 of 4
  1. #1
    Registered User
    Join Date
    May 2003
    Location
    London
    Posts
    40

    dll and lib problem

    Hello,

    I'm trying to create a project that has a dll component. The problem seems to be that there is a missing .def file. Am I right in thinking that "abld freeze" is meant to generate the .def file, or do I have to write it by hand?

    Here is the output from abld.


    Code:
    C:\code\Messaging_client_s60\group>abld -v build armi urel
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \EXPORT.make" EXPORT
    Nothing to do
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" MAKEFILE
    perl -S makmake.pl -D \CODE\MESSAGING_CLIENT_S60\GROUP\MINOTAUR ARMI
    perl -S makmake.pl -D \CODE\MESSAGING_CLIENT_S60\GROUP\MINOTAURMODEL ARMI
    WARNING: Frozen .DEF file \CODE\MESSAGING_CLIENT_S60\BMARM\MINOTAURMODELU.DEF no
    t found - project not frozen
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" LIBRARY
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAUR\ARMI\MINOTAUR.ARMI" LIBRARY
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Nothing to be done for `LIBRARY'.
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAURMODEL\ARMI\MINOTAURMODEL.ARMI" LIBRARY
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    WARNING: Not attempting to create any import libraries.
    When exports are frozen in "\CODE\MESSAGING_CLIENT_S60\BMARM\MINOTAURMODELU.DEF"
    , regenerate Makefile.
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" RESOURCE CFG=UREL
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAUR\ARMI\MINOTAUR.ARMI" RESOURCEUREL
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Nothing to be done for `RESOURCEUREL'.
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAURMODEL\ARMI\MINOTAURMODEL.ARMI" RESOURCEUREL
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Nothing to be done for `RESOURCEUREL'.
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" TARGET CFG=UREL
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAUR\ARMI\MINOTAUR.ARMI" UREL
    make[1]: *** No rule to make target `..\..\..\SYMBIAN\SERIES60_CW\EPOC32\RELEASE
    \ARMI\UREL\MINOTAURMODEL.LIB', needed by `..\..\..\SYMBIAN\SERIES60_CW\EPOC32\RE
    LEASE\ARMI\UREL\MINOTAUR.APP'.  Stop.
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make: *** [TARGETMINOTAUR] Error 2
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" FINAL CFG=UREL
    Code:
    C:\code\Messaging_client_s60\group>abld -v freeze
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \THUMB.make" FREEZE
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAUR\THUMB\MINOTAUR.THUMB" FREEZE
    make[1]: \Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\MINOT
    AUR\THUMB\MINOTAUR.THUMB: No such file or directory
    make[1]: *** No rule to make target `\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESS
    AGING_CLIENT_S60\GROUP\MINOTAUR\THUMB\MINOTAUR.THUMB'.  Stop.
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make: *** [FREEZEMINOTAUR] Error 2
      make -r  -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \ARMI.make" FREEZE
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAUR\ARMI\MINOTAUR.ARMI" FREEZE
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make[1]: Nothing to be done for `FREEZE'.
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make   -r -f "\Symbian\Series60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\
    MINOTAURMODEL\ARMI\MINOTAURMODEL.ARMI" FREEZE
    make[1]: Entering directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    perl -S efreeze.pl "\CODE\MESSAGING_CLIENT_S60\BMARM\MINOTAURMODELU.DEF" "..\..\
    ..\SYMBIAN\SERIES60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP\MINOTAURMODE
    L\ARMI\MINOTAURMODEL.def"
    WARNING: \CODE\MESSAGING_CLIENT_S60\BMARM\MINOTAURMODELU.DEF: File not found - O
    K if freezing for first time
    EFREEZE ERROR: \SYMBIAN\SERIES60_CW\EPOC32\BUILD\CODE\MESSAGING_CLIENT_S60\GROUP
    \MINOTAURMODEL\ARMI\MINOTAURMODEL.def: File not found
    make[1]: *** [FREEZE] Error 2
    make[1]: Leaving directory `C:/CODE/MESSAGING_CLIENT_S60/GROUP'
    make: *** [FREEZEMINOTAURMODEL] Error 2
    Can someone help point me in the right direction of what I'm doing wrong.

  2. #2
    Registered User
    Join Date
    Aug 2003
    Location
    Oulu, Finland
    Posts
    1,122
    An entry in the def file is generated when the compiler sees an IMPORT_C keyword.

    Check that your library API functions have IMPORT_C in their header declarations and EXPORT_C in their definitions unless they are virtual functions (which are always exported).

    When developing the library, you can have the EXPORTUNFROZEN keyword in your MMP file. When the API is finished, remove the keyword and abld freeze the API. This way it's easier to change the API when developing.

    Lauri

  3. #3
    Registered User
    Join Date
    May 2003
    Location
    London
    Posts
    40
    hmm i fixed the problem

    what i did was the clean out all the old stale files from epoc32 directory and subdirs

    reorder the ordering of the lib files in the mmp file
    and in the inf file

    and it seemed to work this time

  4. #4
    Registered User
    Join Date
    Mar 2003
    Posts
    15

    regarding missing def file

    hi,
    Just make sure you have these steps done:
    1. Check whether you have any import or export functions in your DLL. U need to have some export functions in your DLL which is need to be used by other files
    2. make sure, you repeat the following procedure:
    abld build
    abld freeze
    abld build


    and voila.. it should would ..cheers

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×