我正在尝试为运行 Windows 98 第二版的旧计算机制作程序,但它们无法运行。
这些程序是用 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 机器上运行?