Your version of Eclipse is 64-bit, based on the paths and filenames.
However, the version of Java that it's picking up is 32-bit, as indicated by where it is coming from, on this line:
-vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe
Program Files (x86)
is the folder where 64-bit Windows places 32-bit programs.
Program Files
is the folder where 64-bit Windows places 64-bit programs.
This can happen when a system has more than one JVM installed, as is often the case on Windows 64-bit (for example, the JRE download page uses the bit-ness of the browser to determine what bit-ness download to offer you, and many people use(d) 32-bit browsers even though they run 64-bit Windows).
The best way to fix this, assuming you do in fact have 64-bit JRE or JDK on your system, is to specify in eclipse.ini
exactly which JVM you want it to use. The instructions are detailed in the Eclipse wiki page, but basically you have to specify the -vm
option in the ini file - make sure to read the wiki page carefully as the format is very specific.
Specifying the JVM path in eclipse.ini
is strongly recommended because doing so isolates Eclipse from any potential changes to your system PATH
that some program installers might make (I'm talking to you, Oracle!).
Another option would be to download and use 32-bit Eclipse instead of 64-bit, but it's still strongly recommended to specify the path to the JVM in eclipse.ini
.
Left for historical reference:
To check your version of Java, run
java -version
in a console (command prompt). On Windows 7 with 64-bit Java 6 I get:
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
Note the 3rd line, which shows that this is a 64-bit version.
On a 32-bit version you'll get something like:
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
If you are on a 64-bit machine, then you can install the 64-bit JDK and uninstall the 32-bit one. For instance on Windows 10, just go to Settings and under Apps, you will find Java. Click on it and you will find all the different versions. Now you can select which one to uninstall.
Finally, I fix this problem!
This reason that causes this "missing dll" problem is the MinGW compiler attached with the Code::Block is not complete. So, you need to download the required DLL files to the directory "C:\Program Files (x86)\CodeBlocks\MinGW\libexec\gcc\mingw32\4.4.1" which you also need to add the path of this directory to the system PATH environment variable.
In this case, I download two DLL files: libgcc_s_dw2-1.dll and libstdc++-6.dll even if there is only one missing error message about libgcc_s_dw2-1.dll. If you forget the second one, libstdc++-6.dll, you will get another missing message when run the program.
The first dll, libgcc_s_dw2-1.dll, can be fond at the question Where Can I Get libgcc_s_dw2-1.dll?, in which the download link is listed in the selected answer by the author rodrigo. Thanks the guy!
The second dll, libstdc++-6.dll, can be downloaded at http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/libstdc%2B%2B-4.6.2-1-mingw32-dll-6.tar.lzma/download
Best Answer
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 compiler's 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), I'm 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.