Deploying apps across platforms.

I have a question about how “cross-platform” is an openGL/GLUT application? Are there any guides on how to do this process and how smooth this is? For example right now I cannot find a single instance of opengl.dll on my windows XP machine. I thought these were standard on XP. Do I have to distribute the opengl.dll files as well? What if the user has their hardware dll somewhere in windows\system. Will that be used?

I did some searching and couldn’t find the answer to these beginner questions. Thanks.

The dll is called “opengl32.dll”. Usually, the only stuff you have to distribute is your application + any third-party libraries you used (like GLUT). OpenGL is (should) be already installed on the target system, at least on Windows.

It should be but surprisingly it isn’t on my XP machine. There are no files found opengl*.dll on the machine.

So are there any applications out there you can download (binaries), don’t have to compile, and they just work and are cross-platform. How do they handle the library problems? What about linux, where are the library files located for your video card? What special things do you have to do to get a GL application to work?

You would need to program in Java to produce a binary that is crossplatform but I have heard that not even Java is trully cross platform.
There are significant differences between different OSes. Linux doesn’t have drive letters for example. So there are some things that require attention.

Some people use SDL and code with C++ and they make a exe for different platforms.
GLUT could be used as well, but it’s best for just learning.
There is also Qt and WxWindows.

It should be but surprisingly it isn't on my XP machine. There are no files found opengl*.dll on the machine.

You have some problems with your Windows installation.

When you did your search did you enable “Search System Folders”? - Not that you want to be copying/distributing that particular file around. In fact I would recommend NOT distibuting any system OpenGL files since these tend to be related to the local machines hardware.
Do really mean cross-platform? Or do you want to have an application that can run on different Windows-based machines?

Hey, thanks for that search tip. Kind of stupid of me. Finally got the libraries set up to compile and make some test code.

Yes I really mean cross platform, Windows, Solaris and Linux. I’m just investigating an idea for visualizing some images/3D models (I know there are separate programs that do this). OpenGL was the first cross-platform thing I thought of. I looked at GLUT/GLUI. Now also looking at GTK+ (there’s an opengl widget).