views:

332

answers:

2

I need to support Windows 98. The Qt documentation claims this is possible, but there are no instructions. The distributed binaries of Qt 4.6 don't run on Win98 and the majority of Qt applications I have sampled also don't. For several apps that do run on 98, I have asked authors how they did it, but the common answer is that it was accidental and they don't know what factors caused it.

In searching the forums for help, I found only guesses that turned out to be wrong. For example, one belief is that to compile for Win9x, you must build the tools and the apps on that platform. Yet, things I found to run were built on newer versions of Windows.

  • What is required to build the Qt dev tools and then applications for Win98?
  • How about cross-compiling from WinXP or Linux?
  • Are there specific components that can't be made to run on Win98?
  • Are there particular difficulties with dynamic or static linking for Win98 support?
+1  A: 

Wow...interesting mission.

So, basically - yes, there is windows 98 support for Qt. The problem is that there is one big IF. For example if you even try to set some different QTextCodec::codecForName, you'll have to provide 3rd party ttf for this purpose, because in most cases Win98 will not recognize it as valid. If you provide the exact error, while compiling it on win98 machine, I could help you.

"How about cross-compiling from WinXP or Linux?" - If you use ONLY Qt libraries everything goes fine. Otherwise in .pro file, you have to link these libs under win32 and unix conditions. So you could even forbid your code, to be compiled and executed in other systems...

"Are there specific components that can't be made to run on Win98?" - Of course. In .pro file you could include different libraries, for different operating systems.

"Are there particular difficulties with dynamic or static linking for Win98 support?" - As far as I know - there isn't.

//off - But it still strange, that someone want to write application for win98, today...

Vladimiroff
Do you mean that all 19 cross-platform modules in Qt 4.6 will compile and run on Win98, even QtWebKit? If I use cmake and gcc from mingw32 on WinXP, what special settings are required to target Win98? Any idea why so many binaries compiled on XP don't run on 98?
RE:Win98. If your only interest is selling new software, no doubt Win98 looks dead. But that ignores users who keep an old computer until it dies. If what they have works, they feel no need to spend money on something new. This category includes the elderly, the poor, small businesses, and much of the developing world. My impression is there are significantly more users of Win98 around the world than of Mac OS X, and no one doubts the value of considering the needs of Mac users.
On theory: Yes, each of these modules should goes fine as well under Win98, especially if you're using ONLY Qt modules in your app.But, you never know. There are often some stupid bugs under untested platform. So, give it a try.
Vladimiroff
+1  A: 

Here is as far as I'm going to get on this:

You can target Windows 98 using MinGW or VC++ 6 SP5 from any Windows version. Cross-compiling from Linux is doable but not easy to set up.

Qt 4.4.3 was the last version officially tested on Win98. To run the distributed binaries on Win98, you need to install older versions of glu32.dll and opengl32.dll that are available from Microsoft. Due to an unresolved bug, Assistant will launch but can't load the help files. The alternate version in the bin directory, assistant_adp.exe, works fine. It seems the only other potential problem is that QtOpenGL may use features not available on older boxes.

Qt 4.5.3 appears to be still compatible except for WebKit, OpenGL, and Phonon. QtOpenGL expects OpenGL 1.5, which I don't know is even possible on older boxes. I didn't look into Phonon deeply enough to see exactly what the problems are. QtWebKit now requires Win2K or better. The distributed binaries work mostly OK. Assistant depends on QtWebKit, so will not launch, but assistant_adp.exe still works.

Qt 4.6.3 distributed binaries are now completely incompatible with Win98. It may be possible to get some things working with MinGW 4.4 and a lot of hacking.

Building Qt Creator requires Qt 4.6.0 and either MinGW 4.4 or VS 2008.