我正在尝试为运行Windows 98第二版的旧计算机制作程序,但它们不会运行。适用于Windows 98的g ++程序
这些程序是用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++码。
所以问题是:如何让C++程序用g ++ 4.8.1(或更高版本)编译在Windows 98机器上运行?
您是否尝试过安装Microsoft C++再分发发现MSVCRT.DLL? – 2014-08-31 20:57:42
没有。这是让它工作的唯一方法吗? – johanmaack 2014-08-31 21:22:14