PDA

View Full Version : ,exe file does not work on other computer



JCheng
04-10-2010, 01:56 AM
I complied an OpenGL file and create .exe file that worked on my computer fine. But, I passed to other computer. It showed an error that the .exe file did not work as glu32.dll is not installed in it. How can it be fixed so that any complied .exe file can run on any machine at window environment? Tks.

Y-tension
04-10-2010, 04:00 AM
This shouldn't happen as glu32 is part of any windows machine(You can find the file in the windows/system32 folder). In any case, the apparent solution is to include your own glu32.dll in the same folder as your executable. Then the executable will use that in any computer.
You can try compiling the mesa glu package too which supports glu 1.3 (Windows supports only 1.2) but if you are not comfortable with that, just copy the aforementioned system32 file in your folder and it should work fine. And finally I should warn you that glu is deprecated with the latest OpenGL versions.

JCheng
04-10-2010, 04:39 PM
Thanks for your prompt input, but I cannot follow what you mentioned about "mesa glu package"? How does it work? By the way, does my problem come from my working environment which I worked at Code::Blocks on Windows Vista? Tks.

Y-tension
04-11-2010, 06:56 AM
No,no...I use code blocks too. The only problem that may pop up with MinGW (Supposing you use that as a build system) in general is that sometimes, there is a c runtime library needed that may not be present in another system. To avoid that, use -static-libgcc option when compiling or, simply copy the libgcc dll in your application folder.
About the mesa glu package: Mesa (www.mesa3d.org (http://www.mesa3d.org)) includes glu so, if you build it you get the glu.dll too. However, last time I checked it required some tweaking in the source to work, because it uses glTexImage3D without initializing the function pointer. Anyway, nothing too advanced but if you are not comfortable with makefiles and some manual editing, I suggest sticking with copying from system32. Version 1.3 doesn't have too many additions anyway. Note-don't use the opengl32 dll from glu because it is a software not a hardware rasterizer!

JCheng
04-11-2010, 07:14 PM
That's great that you're also using Code::Blocks. Please help and see if my setting listed below is correct or not.
================================================== =====
Compiler : GNU GCC Compiler
C compiler : mingw32-gcc.exe
C++ compiler : mingw32-g++.exe
Linker for dynamic libs : mingw32-g++.exe
Linker for static libs : ar.exe
Debugger : gdb.exe
Resource compiler : windres.exe
Make program : make.exe

Project build options
Compiler settings: Enable all compiler warnings
Linker settings : mingw32
SDLmain
SDL.dll
user 32
gdi32
winmm
dxguid

JCheng
04-11-2010, 07:17 PM
Sorry, missing that the headers uased in program are:

#include <windows.h>
#include <GL/glut.h>

Thanks.

JCheng
04-11-2010, 07:50 PM
apologetic again, missing dlls. The list of dlls added under differenct directory as below :

/Windows/ : opengl32.dll, glu32.dll, glmf32.dll, glut32.dll
/Windows/system/ : glut32.dll
/Windows/system32/ : opengl32.dll, glu32.dll

I guess some of them may accidentically put in. Please let me know if anything is wrong. Tks.

JCheng
04-13-2010, 06:26 PM
Would someone help on this. I still don't have any idea to fix it. Tks.

Y-tension
04-14-2010, 06:40 AM
I told you before, just copy glu32.dll into the folder where your executable is compiled.
Another thing is that I can't see opelgl32 and glu32 in your linker options. Otherwise it looks more or less fine..Maybe that's the culprit?