Я пытаюсь перенести некоторый код из linux в windows под cygwin. Я нахожу эту странную ошибку, когда «rand_r не объявляется в этой области». Я использую gcc 4.8.1 как x86_64-w64-mingw32, а в его пути поиска (-v) он выглядит в правильных каталогах. Заголовочные файлы включены правильно. Я ищу идеи для решения этой проблемы. Есть ли какой-то факт о cygwin, которого я упускаю и поэтому имею эту проблему? Есть ли способ проверить, действительно ли gcc касается необходимых файлов?rand_r не в области, gcc mingw под cygwin на окнах
ответ
Функция rand_r
считается безопасной по потоку, по сравнению со стандартной функцией rand
. См. man 3 rand_r.
Один из вариантов заключается в том, чтобы реализовать rand_r
путем обертывания вызова rand
. Это может быть или не быть желательным, и, как указано в руководстве, rand_r
является достаточно слабым генератором псевдослучайных чисел.
Увидев, что вы используете C++, почему бы не взглянуть на новый random number libraries. Они потокобезопасны, переносятся и производят гораздо лучшие случайные результаты. This question, хотя закрыт как не настоящий вопрос, по-прежнему содержит полезную информацию о том, как использовать библиотеку.
Если у вас нет доступных классов C++ 11, Boost также имеет implementation.
Спасибо. Я собираюсь идти вперед и использовать 'rand', пока автор этой части кода не начнет увеличиваться. –
- 1. GCC на Cygwin сосуществует с MinGW
- 2. Protobuf в окнах под MinGW
- 3. Компиляция с gcc (cygwin на окнах)
- 4. C++ segfault под gcc + mingw, но не gcc + linux
- 5. Cygwin: Как на самом деле использовать gcc-mingw
- 6. Создание эспрессо под cygwin - confused
- 7. arm-eabi-gcc - cygwin
- 8. Ошибка при использовании GCC Linker под MinGW
- 9. Cygwin и MinGW
- 10. fork с gcc на окнах
- 11. Можно ли использовать GCC без Cygwin или MinGW?
- 12. Как установить cygwin и mingw под windows 7?
- 13. InterlockedOr8 на gcc MinGW
- 14. Установка GCC 4.9 на окнах и настроить его в Netbeans
- 15. отчеты НКУ ошибка MinGW, где Cygwin-х принимает GCC
- 16. Строительство CUnit с cygwin на окнах
- 17. Компиляция C++ в Windows (Mingw/Cygwin)
- 18. Mingw, Cygwin g ++, STL set
- 19. «Не удалось найти vcvarsall.bat» ошибку на окнах
- 20. MinGW как надежный 64-разрядный компилятор GCC
- 21. Установка boost с использованием MinGW 64 - (Cygwin)
- 22. MinGW GCC Не распознает MEMSTATUSEX?
- 23. Cygwin на окнах не распознает сделать
- 24. Ошибка сегментации компиляции в mingw, но не gcc на linux.
- 25. Cygwin gcc не найден stdio.h
- 26. cygwin gcc: команда не найдена
- 27. Eclipse не распознает CygWin gcc
- 28. играет с GCC 4.6 на окнах
- 29. Как обновить GCC в MinGW на Windows?
- 30. GCC на Windows - Bash на Ubuntu на Windows (WSL), CygWin, MinGW
Возможно, потому что 'rand_r' является функцией' glibc', и по крайней мере gcc-mingw не использует 'glibc' в качестве реализации библиотеки C. –
Я вижу, что это не так. У вас есть предложение о том, какую функцию я должен использовать вместо gcc-mingw? –