×

Discussion Board

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    Regular Contributor
    Join Date
    May 2005
    Location
    Brasov, Romania
    Posts
    431

    Linking error using VS.NET + Carbide.vs + S60_3rd_Beta SDK

    Hello!

    I get a link error when I'm trying to build my project:

    Code:
    mwldsym2.exe: Undefined symbol: 'int E32Main(void) (?E32Main@@YAHXZ)'
    mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:46 (EEXE.LIB)
    Errors caused tool to abort.
    MyProject : error PRJ0002 : error result returned from 'link.exe'.
    eexe.lib is linked

    The project I'm trying to build is in fact a S60_v20 project that I'm trying to port to S60_3rd_Beta. I eliminated all the missing libraries, I fixed all compiler's new raisen errors, but I'm stuck here.

    Can anybody help?

    I mention again that I'm using Vs.NET +Carbide.vs + S60_3rd_Beta SDK
    Last edited by iulian_moldovan; 2005-11-11 at 10:32. Reason: bad forum section

  2. #2
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Re: Linking error using S60_3rd_Beta SDK

    Hi,

    I'm seriously outside my area of competence here but did you modify the application entry point to something like:

    GLDEF_C TInt E32Main()

    Somebody else will have to fill in the details but the way that application entry point is defined has changed when moving to 3.0.

  3. #3
    Regular Contributor
    Join Date
    May 2005
    Location
    Brasov, Romania
    Posts
    431

    Re: Linking error using S60_3rd_Beta SDK

    No, the entry point is

    Code:
    GLDEF_C TInt E32Dll( /*TDllReason*/ )
    {
    	return KErrNone;
    }
    For the moment TDllReason triggers a compiler error, so I commented it.

    Thanks anyway for your information, I will check the doc.

  4. #4
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Re: Linking error using S60_3rd_Beta SDK

    Just out of curiosity, how did you create the 3.0 project, using import and setting project type to Symbian9 or using the Clone function?

  5. #5
    Regular Contributor
    Join Date
    May 2005
    Location
    Brasov, Romania
    Posts
    431

    Re: Linking error using S60_3rd_Beta SDK

    I used Import then setting to Symbian9, not Clone.
    Why?

  6. #6
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Re: Linking error using S60_3rd_Beta SDK

    Just curious to know if anybody finds the Clone thing useful as this is something for which there is no previous comparable functionality. Were you able to get the build to work?

  7. #7
    Regular Contributor
    Join Date
    May 2005
    Location
    Brasov, Romania
    Posts
    431

    Re: Linking error using S60_3rd_Beta SDK

    Quote Originally Posted by mitts
    Just curious to know if anybody finds the Clone thing useful as this is something for which there is no previous comparable functionality. Were you able to get the build to work?
    Nope, I did not use Clone until now.
    The problem is that I had multiple mmp files / projects in 60_20 and some custom libraries and now I cannot build in the right way since I do not have the libraries rebuilt for this Symbian version.

    If I get the build to work? No! I removed all custom libraries and related-code, but I somehow managed to make my emulator crash at it's initialization and the epoc.exe file dissappear.

    I still think if it would be better to start a fresh new S60_3rd application and add my old application files one by one (but there's almost 140 of them)

  8. #8
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Re: Linking error using S60_3rd_Beta SDK

    But you got past the linking problme then I gather?

    Another thing to watch out for is the UID used for 3.0, the emulator is quite picky with that. Carbide.vs uses the range 0x10000000-0x1FFFFFFF.

    See for instance: http://discussion.forum.nokia.com/fo...ad.php?t=69289

  9. #9
    Regular Contributor
    Join Date
    Jun 2005
    Location
    Philippines
    Posts
    163

    Talking Re: Linking error using S60_3rd_Beta SDK

    I think that the solution to the linking problem is that there is a binary break when it comes to S60 3rd Ed due to the new kernel defined in the code by the "EKA2" macro and that there is a new framework for doing the UI. Hope I get this right because from my point of view, instead of doing the usual

    EXPORT_C CApaApplication* NewApplication()
    {
    return new YourApplication;
    }

    // DLL entry point, return that everything is ok
    GLDEF_C TInt E32Dll(TDllReason)
    {
    return KErrNone;
    }
    You do
    // Create an application, and return a pointer to it
    CApaApplication* NewApplication()
    {
    return new YourApplication;
    }


    TInt E32Main()
    {
    return EikStart::RunApplication(NewApplication);
    }
    For me it is so much easier doing the ff:
    1. Creating a new project using Codewarrior v3.1 and S60 3rd Ed SDK
    2. Editing the MMP file to include the required libraries and additional files after you copy them to the project directory in a folder of your choice
    3. Re-importing the project and making sure everything compiles smoothly
    4. Test if your functionality still works as expected.

    Hope this helps.

  10. #10
    Regular Contributor
    Join Date
    May 2005
    Location
    Brasov, Romania
    Posts
    431

    Re: Linking error using S60_3rd_Beta SDK

    Thanks!

    I did that last week, and that was the only solution. It was kinda' tricky because I had to use my old app files, I copied the ones from the new application and adapted them.... a whole story. But it works.

    Thanks anyway!

  11. #11
    Registered User
    Join Date
    Nov 2005
    Posts
    8

    Re: Linking error using S60_3rd_Beta SDK

    if you building a application and not a dll, then you need to ahve E32main inside your project and not E32Dll

  12. #12
    Regular Contributor
    Join Date
    Jun 2005
    Location
    Philippines
    Posts
    163

    Re: Linking error using S60_3rd_Beta SDK

    Does that always hold true for s60_3rd_Beta SDK about having E32Main instead of E32Dll?

    In previous SDKs, it does not follow that if you are building a Symbian application or an *.app it does not mean that your entry point should necessarily be an E32Main. I have been building Symbian apps and dlls using E32Dll in S60 2nd Ed FP2

  13. #13
    Registered User
    Join Date
    Nov 2005
    Posts
    8

    Re: Linking error using S60_3rd_Beta SDK

    Ryan,

    with my humble experience on symbian, for apps and dll, you need E32DLL as the entry point which is correct, I dont know if you there is any way to have E32Main as the entry point for apps, and dll (apps are dlls anyways).

    In symbian 9, Targettype=App is deprecated. as i was answering the original question (I assumed that he was building an app project using symbian 9)

    -Prakash

  14. #14
    Regular Contributor
    Join Date
    Jun 2005
    Location
    Philippines
    Posts
    163

    Smile Re: Linking error using S60_3rd_Beta SDK

    Thanks for your answer =)

    I thought that apps still needed an E32Dll entry point in Symbian OS v9.1. When I create a new project using Codewarrior v3.1 for S60_3rd_Beta SDK, I get #ifdefs in my project and those #ifdefs show that it is still possible to have an E32Main and an E32Dll if the macros __UI_FRAMEWORKS_V2__ is defined and EKA2 is not defined.

  15. #15
    Registered User
    Join Date
    Nov 2005
    Posts
    8

    Re: Linking error using S60_3rd_Beta SDK

    Quote Originally Posted by ryan
    it is still possible to have an E32Main and an E32Dll if the macros __UI_FRAMEWORKS_V2__ is defined and EKA2 is not defined.
    Yes ryan, if I am not wrong , this is only applicable to targettype=exedll and not for either exe or dll.

    -prakash

Similar Threads

  1. Replies: 33
    Last Post: 2011-07-31, 19:39
  2. MIDP applicatyion accessing a servlet not working in series 60 emulator
    By ferozekadamapuzha in forum Mobile Java General
    Replies: 11
    Last Post: 2008-05-07, 18:04
  3. Series 60 Concept Emulator (SDK Beta 0.2 Linux) not working
    By mattbee in forum Mobile Java Tools & SDKs
    Replies: 1
    Last Post: 2003-06-10, 11:43
  4. Series 60Series 60 MIDP Concept SDK Beta 0.2 Linux bug?
    By kauppi in forum Mobile Java Tools & SDKs
    Replies: 3
    Last Post: 2003-04-07, 09:05
  5. Http connection problem in 6310i
    By teahola in forum Mobile Java General
    Replies: 1
    Last Post: 2002-10-03, 18:46

Posting Permissions

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