我正在嘗試爲運行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