2014-08-31 72 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

回答

相關問題