Missing 'libgcc_s_sjlj-1.dll' problem

2010-02-07
2013-06-06
  • Lean Alcabasa
    Lean Alcabasa
    2010-02-07

    Hi all,

    I am developing a simple application from my host computer (32-bit) targeting a 64-bit computer.

    I have some problems with using the GCC I downloaded (mingw-w64-1.0-bin_i686-mingw_20100129). I integrated this cross-compiler to Dev-C++.

    First is, I did not find any 'make.exe' and 'gdp.exe', so what I did was download from the External Binary Packages in the sourceforge site and placed them in the bin folder. 'gdp.exe' seems to be working, however, the 'gmake.exe' that I downloaded did not work. What my computer did was find another make file, which was 'mingw32-make.exe'.

    Once I did this and Rebuilded my application, it successfully compiled my application and produced an exe file for my application.

    Now, for the testing part. It seems that it successfully compiled it to a 64-bit exe since it won't run on my 32-bit (it says 'not a valid win32 exe'). The computer I tested it on is, specifically, a Windows PE (Preinstallation Environment) 64-bit clean install. Once I tried to run my application, it gives this error:

    "The program can't start because libgcc_s_sjlj-1.dll is missing from your computer. Try reinstalling the program to fix this problem."

    Is there any way that I can solve this error? Are there any things that I did wrong to produce this error?

    I hope you help me.

    Thank you very much in advance!

     
  • Ozkan Sezer
    Ozkan Sezer
    2010-02-07

    > First is, I did not find any 'make.exe' and 'gdp.exe', so

    Would that be 'gdb,exe' ?

    > however, the 'gmake.exe' that I downloaded did not work.

    If you tell us what package for make you downloaded and what
    did not work for you, probably in another thread, it would be
    more useful for all.  (One thing comes to mind, though: if
    your Dev-C++ is looking for make as make.exe, did you rename
    gmake.exe to make.exe?)

    > "The program can't start because libgcc_s_sjlj-1.dll is missing
    > Is there any way that I can solve this error?

    In the same directory where gcc.exe is, there should be a dll
    file named libgcc_s_sjlj-1.dll, which should be a 64 bit dll.
    Copy that dll into the same directory your exe is, and it should
    work: you exe is linked against that dll.

     
  • Lean Alcabasa
    Lean Alcabasa
    2010-02-08

    Thank you for replying!

    Would that be 'gdb,exe' ?

    Yes, it's 'gdb.exe'. Sorry about that.

    If you tell us what package for make you downloaded and what
    did not work for you, probably in another thread, it would be
    more useful for all. (One thing comes to mind, though: if
    your Dev-C++ is looking for make as make.exe, did you rename
    gmake.exe to make.exe?)

    \

    The packaged that I downloaded was 'make_20100202_bin.zip'. I haven't tried renaming it to 'make.exe', although what Dev C++ did was find another make named 'mingw32-make', found in the bin folder that Dev C++ uses.

    In the same directory where gcc.exe is, there should be a dll
    file named libgcc_s_sjlj-1.dll, which should be a 64 bit dll.
    Copy that dll into the same directory your exe is, and it should
    work: you exe is linked against that dll.

    I tried using that, but I still get the same error. Maybe I need to fix the gmake.exe? Any suggestions?

    Thank you very much!

     
  • Ozkan Sezer
    Ozkan Sezer
    2010-02-08

    > The packaged that I downloaded was 'make_20100202_bin.zip'.
    > I haven't tried renaming it to 'make.exe', although what
    > Dev C++ did was find another make named 'mingw32-make',
    > found in the bin folder that Dev C++ uses.

    Please try renaming gmake.exe and it should work, too.

    >> In the same directory where gcc.exe is, there should be a
    >> dll file named libgcc_s_sjlj-1.dll, which should be a 64
    >> bit dll. Copy that dll into the same directory your exe is,
    >> and it should work: you exe is linked against that dll.
    >
    > I tried using that, but I still get the same error.

    You said you use mingw-w64-1.0-bin_i686-mingw_20100129:
    It is a cross compiler running on win32 but targetting win64, so
    if by accident, the libgcc_s_sjlj-1.dll file it contains is a 32
    bit dll instead of a 64 bit one, you still get error. If this is
    the case, that mingw-w64-1.0-bin_i686-mingw_20100129 package is a
    bad package. If not, well, then I can't think of anything else..

    > Maybe I need to fix the gmake.exe?

    That's irrelevant.