4

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 マシンで実行するにはどうすればよいかということです。

4

2 に答える 2

0

通常、IE4 http://gnuwin32.sourceforge.net/packages/gcc.htmをインストールすると、msvcrt.dll を見つけることができます。

于 2016-03-20T23:12:45.017 に答える