Windows 98 Second Edition を実行している古いコンピュータ用のプログラムを作成しようとしていますが、実行できません。
プログラムは c++ で書かれており、Windows Vista コンピュータにインストールされた MinGW (g++ バージョン 4.8.1) でコンパイルされています。テストのために、この単純な Hello World プログラムを試しました。
#include <iostream>
using namespace std;
int main(){
cout <<"hello world";
return 0;
}
コンパイルには、次のコマンドを使用しました。
g++ hello.cpp -o hello.exe
Windows 98 コンピュータでこのプログラムを実行しようとすると、次のメッセージが表示されます。
A required .DLL file, LIBGCC_S_DW2-1.DLL, was not found.
したがって、実行可能ファイルを可能な限り dll ファイルから独立させるために、次のコマンドでプログラムをコンパイルしてみました。
g++ hello.cpp -static -o hello.exe
しかし、Windows 98 コンピューターでプログラムを試すと、次のメッセージが表示されます。
The hello.exe file is linked to missing export MSVCRT.DLL:_fstat64
問題を分析するために、いくつかのことを試しました。そして、代わりに g++ バージョン 2.95.2 を使用して同じコマンドで同じコードをコンパイルすると、プログラムは Windows 98 マシンで実行できることに気付きました。ただし、問題のあるバグがいくつか含まれているため、この古いバージョンの g++ は使用しないことをお勧めします。
また、通常の c で作成された同様のプログラム (gcc バージョン 4.8.1 でコンパイル) も古いコンピューターで正常に動作することに気付きましたが、多くの c++ コードを書き直す必要があるため、通常の c を使用しないことをお勧めします。
問題は、g++ 4.8.1 (またはそれ以降) でコンパイルされた c++ プログラムを Windows 98 マシンで実行するにはどうすればよいかということです。