2014-08-31 68 views
1

我正在尝试为运行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机器上运行?

+1

您是否尝试过安装Microsoft C++再分发发现MSVCRT.DLL? – 2014-08-31 20:57:42

+0

没有。这是让它工作的唯一方法吗? – johanmaack 2014-08-31 21:22:14

回答

相关问题