Я пытаюсь создать случайные числа в моей программе на C++. Он работает на моем ноутбуке, который запускает окна. Однако, когда я пытаюсь скомпилировать свою программу на другой компьютер, я получаю следующее сообщение об ошибке:C++ Генерация случайных чисел с использованием Mersenne Twister
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'. -and- Попробуйте добавить флаг '-m64' в GCC. -или- Проверьте, работает ли версия 'std :: mt19937'. -and- Попробуйте явно разрешить пространство имен: 'std :: mt19937_64' вместо 'mt19937_64'. – Drop