Question

I have written a game that uses GLUT, OpenGL and FMOD. The problem is that the binary won't run, unless Visual Studio 2008 is installed on the computer.

Why is this?

Was it helpful?

Solution

Most likely you're linking with DLL versions of the C/C++ runtime. Go to project properties -> C++ -> Code Generation, and set Runtime Library to not be one of "DLL" kinds.

Alternatively, you can link to DLL runtimes, but then you have to redistribute the runtime with your application.

MSDN has more information on various aspects of C++ application deployment: http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx

Also, Dependency Walker (depends.exe) will show what libraries your executable depends on. It ships with some versions of Visual Studio as well.

OTHER TIPS

You mean why is Microsoft Visual C++ 2008 Redistributable Package (x86) needed?

This package installs runtime components of C Runtime (CRT), Standard C++, ATL, MFC, OpenMP and MSDIA libraries. For libraries that support side-by-side deployment model (CRT, SCL, ATL, MFC, OpenMP) they are installed into the native assembly cache, also called WinSxS folder, on versions of Windows operating system that support side-by-side assemblies.

Because they are not installed on all Windows by default, especially the ones that shipped before VS 2008.

Even for

cout << "Hello, World" << endl;

You need a library, which in this case the Standard C++ library.

Welcome to the wonderful world of application deployment.

Run the tool depends on your executable and it will tell you which DLLs you need to also copy along with your EXE.

This program can help you find what dlls (if any) are missing on the the computer that it won't run on

Only the release versions of the C runtime and the C++ standard library dlls are installed with Windows by default. Installing Visual Studio will additionally install the debug versions.

Make sure the version you're deploying is built entirely in release mode.

Try compiling in release mode, and make sure that all required DLLs are installed on the target machine. It works for me.

Do you have dependencies on debug libraries?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top