×

Discussion Board

Results 1 to 5 of 5
  1. #1
    Registered User
    Join Date
    Mar 2003
    Posts
    23

    Linker Path Problem (ld.exe)

    I am using Carbide Professional edition and the S60 S.8 Phone (ARMI) Release SDK. The command line passed to the linker includes the path C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel which does not exist. This causes the linker to fail. Does anybody know why? Is this a buffer overrun? 'jecttype' is part of the string 'projecttype'.

    ld.exe output below.

    Thanks,

    Alex

    'Invoking: GCC98 Linker first stage'
    ld.exe --base-file "logserver.bas" --whole-archive logserver.in --no-whole-archive "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edll.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edllstub.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\egcc.lib" -s -e_E32Startup -u_E32Startup "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\insock.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estor.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estlib.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\efsrv.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\euser.lib" -o nul
    ld.exe: cannot open C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edllstub.lib: No such file or directory
    make: *** [logserver.bas] Error 1
    make: Target `all' not remade because of errors.
    Build complete for project LogServer

  2. #2
    Super Contributor
    Join Date
    Dec 2005
    Location
    England,UK
    Posts
    1,600

    Re: Linker Path Problem (ld.exe)

    Hi,
    I believe that for some reason when the SDK package installer created the package for S60 2nd Ed FP3 the path was not installed correctly.

    check in "C:\Symbian\8.1a\S60_2nd_FP3\Epoc32\release\armi\urel"
    for the file edllstub.lib.

    Check that the file is labelled "LIBRARY edllstub.lib" in the MMP file
    I think its looking in our project and the value may because the enviroment is incorrect and only the last 8 characters are used as in EPOCROOT.

    I have build a new helloWorld using the Menu and it worked.
    In a new project workspace

    File ->NeW -> "Symbian OS C++ Project"
    project name (Your projectname)perhaps "logserver"
    bottom of list select "S60 2.x Hello world GUI application"
    Select S60_2nd_Ed_FP3
    Select Active Config and Select S60 Phone
    Select Rebuild

    ------------------------------------------------------------
    'Invoking: GCC98 Linker first stage'
    ld.exe --base-file "HelloS602ndFP3.bas" --whole-archive HelloS602ndFP3.in --no-whole-archive HelloS602ndFP3.expi "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edll.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edllstub.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\egcc.lib" -s --dll -e_E32Dll -u_E32Dll C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\euser.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\apparc.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\cone.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcore.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\avkon.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcoctl.lib -o nul
    'Finished building: HelloS602ndFP3.bas'
    ' '
    'Invoking: GCC98 Dlltool third stage'
    dlltool.exe -marm_interwork --base-file HelloS602ndFP3.bas --def HelloS602ndFP3.def --output-exp "HelloS602ndFP3.exp" --dllname "HelloS602ndFP3[00AB1E56].app"
    'Finished building: HelloS602ndFP3.exp'
    ' '
    'Invoking: GCC98 Linker second stage'
    ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\ARMI\UREL\HelloS602ndFP3.app.map -o "C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/ARMI/UREL/HelloS602ndFP3.sym" --whole-archive HelloS602ndFP3.in --no-whole-archive HelloS602ndFP3.exp "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edll.lib"

    "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edllstub.lib"

    "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\egcc.lib" --dll -e_E32Dll -u_E32Dll C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\euser.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\apparc.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\cone.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcore.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\avkon.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcoctl.lib
    'Finished building: C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/ARMI/UREL/HelloS602ndFP3.sym'

    and this come from the generated "makefile"

    C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/ARMI/UREL/HelloS602ndFP3.sym: $(IN_OBJS) $(EXP_OBJS) $(USER_OBJS)
    @echo 'Invoking: GCC98 Linker second stage'
    @echo ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\ARMI\UREL\HelloS602ndFP3.app.map -o "$@" --whole-archive $(IN_OBJS) --no-whole-archive $(USER_OBJS) $(LIBS) $(EXP_OBJS) "${EPOCROOT}epoc32\release\armi\urel\edll.lib" "${EPOCROOT}epoc32\release\armi\urel\edllstub.lib" "${EPOCROOT}epoc32\release\armi\urel\egcc.lib" --dll -e_E32Dll -u_E32Dll ${EPOCROOT}epoc32\release\armi\urel\euser.lib ${EPOCROOT}epoc32\release\armi\urel\apparc.lib ${EPOCROOT}epoc32\release\armi\urel\cone.lib ${EPOCROOT}epoc32\release\armi\urel\eikcore.lib ${EPOCROOT}epoc32\release\armi\urel\avkon.lib ${EPOCROOT}epoc32\release\armi\urel\eikcoctl.lib
    @ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\ARMI\UREL\HelloS602ndFP3.app.map -o "$@" --whole-archive $(IN_OBJS) --no-whole-archive $(USER_OBJS) $(LIBS) $(EXP_OBJS) "${EPOCROOT}epoc32\release\armi\urel\edll.lib" "${EPOCROOT}epoc32\release\armi\urel\edllstub.lib" "${EPOCROOT}epoc32\release\armi\urel\egcc.lib" --dll -e_E32Dll -u_E32Dll ${EPOCROOT}epoc32\release\armi\urel\euser.lib ${EPOCROOT}epoc32\release\armi\urel\apparc.lib ${EPOCROOT}epoc32\release\armi\urel\cone.lib ${EPOCROOT}epoc32\release\armi\urel\eikcore.lib ${EPOCROOT}epoc32\release\armi\urel\avkon.lib ${EPOCROOT}epoc32\release\armi\urel\eikcoctl.lib
    @echo 'Finished building: $@'
    @echo ' '
    --------------------------------------------------------------------
    It would seem that your makefile is not correctly generated.
    Good Luck,
    Jim

  3. #3
    Registered User
    Join Date
    Mar 2003
    Posts
    23

    Re: Linker Path Problem (ld.exe)

    Hi Jim,

    Thanks for your post.

    edllstub.dll is in the right location. I followed your instructions and created a project. It worked fine. Also, I have not explicity added edllstub.lib to my mmp file. I think Carbide passes it to the linker automatically. I have pasted the linker output for the test project and my broken project below (note the dodgy JECTTYPE Directory):

    'Invoking: GCC98 Linker second stage'
    ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\ARMI\UREL\TestProj.app.map -o "C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/ARMI/UREL/TestProj.sym" --whole-archive TestProj.in --no-whole-archive TestProj.exp "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edll.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\edllstub.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\egcc.lib" --dll -e_E32Dll -u_E32Dll C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\euser.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\apparc.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\cone.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcore.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\avkon.lib C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\urel\eikcoctl.lib
    'Finished building: C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/ARMI/UREL/TestProj.sym'

    Invoking: GCC98 Linker second stage'
    ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\JECTTYPE\UREL\logserver.exe.map -o "C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/JECTTYPE/UREL/logserver.sym" --whole-archive logserver.in --no-whole-archive logserver.exp "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edll.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edllstub.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\egcc.lib" -e_E32Startup -u_E32Startup "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\insock.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estor.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estlib.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\efsrv.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\euser.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\edllstub.lib"
    ld.exe: cannot open C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\jecttype\urel\edllstub.lib: No such file or directory
    make: *** [C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/JECTTYPE/UREL/logserver.sym] Error 1
    make: Target `all' not remade because of errors.
    Build complete for project LogServer

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

    Re: Linker Path Problem (ld.exe)

    This is the relevant part of my makefile. It seems to be pretty broken!

    C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/JECTTYPE/UREL/logserver.sym: $(IN_OBJS) $(EXP_OBJS) $(USER_OBJS)
    @echo 'Invoking: GCC98 Linker second stage'
    @echo ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\JECTTYPE\UREL\logserver.exe.map -o "$@" --whole-archive $(IN_OBJS) --no-whole-archive $(USER_OBJS) $(LIBS) $(EXP_OBJS) "${EPOCROOT}epoc32\release\jecttype\urel\edll.lib" "${EPOCROOT}epoc32\release\jecttype\urel\edllstub.lib" "${EPOCROOT}epoc32\release\jecttype\urel\egcc.lib" -e_E32Startup -u_E32Startup "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\insock.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estor.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estlib.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\efsrv.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\euser.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\edllstub.lib"
    @ld.exe -Map C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\JECTTYPE\UREL\logserver.exe.map -o "$@" --whole-archive $(IN_OBJS) --no-whole-archive $(USER_OBJS) $(LIBS) $(EXP_OBJS) "${EPOCROOT}epoc32\release\jecttype\urel\edll.lib" "${EPOCROOT}epoc32\release\jecttype\urel\edllstub.lib" "${EPOCROOT}epoc32\release\jecttype\urel\egcc.lib" -e_E32Startup -u_E32Startup "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\insock.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estor.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\estlib.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\efsrv.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\euser.lib" "C:\Symbian\8.1a\S60_2nd_FP3\epoc32\release\armi\UREL\edllstub.lib"
    @echo 'Finished building: $@'
    @echo ' '

  5. #5
    Super Contributor
    Join Date
    Dec 2005
    Location
    England,UK
    Posts
    1,600

    Re: Linker Path Problem (ld.exe)

    Hi,
    the first line in the make file is
    C:/Symbian/8.1a/S60_2nd_FP3/epoc32/release/JECTTYPE/UREL/logserver.sym: $(IN_OBJS) $(EXP_OBJS) $(USER_OBJS)
    This make file is generated by the selection of the "phone configuration". I suspect that this comes from inside carbide.

    I would try creating this in a new carbide workspace and import the code again as you may have some problem in your workspace that cannot be.

    From the File menu Click switch workspace select a new name without spaces and clear the "use this as default".

    import your source using mmp file, import your project .pkg file

    Select to build with emulator, build the emulator version.
    Go back and select phone version, build with phone version.

    Check the make file and see if its the same as before.

    Good Luck,
    Jim

Similar Threads

  1. Carbide.vs EPOCROOT problem
    By mrtj in forum Symbian Tools & SDKs
    Replies: 3
    Last Post: 2006-06-08, 10:56
  2. CodeWarrior EPOCROOT problem
    By splinecl in forum Symbian Tools & SDKs
    Replies: 1
    Last Post: 2004-10-01, 09:47
  3. 7210 Silent Problem
    By MarkMckim in forum Mobile Java General
    Replies: 1
    Last Post: 2003-03-18, 12:36

Posting Permissions

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