1
我試圖在我的C++程序中生成隨機數。它適用於我的筆記本電腦,它運行Windows。然而,當我試圖編譯另一臺計算機,我得到了以下錯誤消息對我的程序:使用Mersenne Twister生成C++隨機數
error: ‘mt19937_64’ was not declared in this scope
error: expected ‘;’ before ‘randomGenerator’
對應下面的一段代碼:
double** Euler::startSimulation(void) {
mt19937_64 randomGenerator (mySeed);
/* More unshown code below... */
}
我從命令行使用編譯我的代碼g ++與-std = C++ 0x標誌。如何解決這個問題,以便我的代碼可以在兩臺計算機上編譯和正確運行。
這兩臺電腦都是64位的嗎? –
是的,這兩臺計算機都是64位,但是,在我的筆記本電腦上我使用的是Microsoft Visual Studio 2012,而我正在編譯我的另一臺機器上的命令行,該機器運行的是Linux – covertbob
什麼是GCC版本? ('gcc - v')更好地使用'std = C++ 11',而不是'-std = C++ 0x'。 - 並且 - 嘗試將'-m64'標誌添加到GCC。 - 或者 - 檢查'std :: mt19937'版本是否有效。 - 並且 - 嘗試顯式解析名稱空間:'std :: mt19937_64'而不是'mt19937_64'。 – Drop