c++ – The program cant start because libgcc_s_dw2-1.dll is missing

c++ – The program cant start because libgcc_s_dw2-1.dll is missing

I believe this is a MinGW/gcc compiler issue, rather than a Microsoft Visual Studio setup.

The libgcc_s_dw2-1.dll should be in the compilers bin directory. You can add this directory to your PATH environment variable for runtime linking, or you can avoid the problem by adding -static-libgcc -static-libstdc++ to your compiler flags.

If you plan to distribute the executable, the latter probably makes the most sense. If you only plan to run it on your own machine, the changing the PATH environment variable is an attractive option (keeps down the size of the executable).

Updated:

Based on feedback from Greg Treleaven (see comments below), Im adding links to:

[Screenshot of Code::Blocks Project build options]

[GNU gcc link options]

The latter discussion includes -static-libgcc and -static-libstdc++ linker options.

In Eclipse, you will find it under the project properties > C/C++ Build > Settings > MinGW C++ Linker > Misc

You must add it to the linker flags at the top; nowhere else.
Then just rebuild.

Eclipse

I have found that linking those statically explodes the size up to 1,400kb even with optimizations. Its 277kb larger compared to just copying over the shared DLLs. Its 388kb larger as well after UPXing everything. Very lose/lose here. Just include the DLLs as the end-user can decide to delete them or not if they have them installed elsewhere.

c++ – The program cant start because libgcc_s_dw2-1.dll is missing

Code::Blocks: add -static in settings->compiler->Linker settings->Other linker options.

Leave a Reply

Your email address will not be published.