rand_r不在作用域中,gcc-mingw在windows上的cygwin下
rand_r not in scope, gcc mingw under cygwin on windows
我正在尝试将一些代码从linux移植到cygwin下的windows。我发现了一个奇怪的错误,其中"rand_r没有在此范围内声明"。我使用gcc 4.8.1作为x86_64-w64-mingw32,在它的搜索路径(-v选项)中,它确实在正确的目录中查找。头文件包含正确。我正在寻找解决这个问题的方法。关于cygwin,是否有一些事实是我错过了,因此出现了这个问题?有没有办法检查gcc是否真的接触到了所需的文件?
rand
函数相比,rand_r
函数被认为是线程安全的。请参阅man 3 rand_r。
一种选择是通过包装对rand
的调用来自己实现rand_r
。这可能是可取的,也可能不是可取的,而且正如手动状态所示,rand_r
无论如何都是一个相当弱的伪随机数生成器。
既然你正在使用C++,为什么不看看新的随机数库呢。它们是线程安全的、可移植的,并且产生更好的随机结果。这个问题虽然不是一个真正的问题,但仍然包含一些关于如何使用图书馆的有用信息。
如果您没有可用的C++11随机类,Boost也有一个实现。
相关文章:
- Boost::process on Windows - with MinGW?
- 我的代码在使用GCC-MinGW时不再编译
- 在 Windows 10 (MinGW) 中使用 gVim 8.1 编译 C/C++
- 编译并使用Live555 Libs -Windows和Mingw(未解决的引用)
- 使用GCC/Mingw创建代理DLL
- 在Windows 7(Mingw,Code :: Blocks)下进行编译,以获取Botan Library测试程序
- InterlockedOr8 on gcc MinGW
- typeinfo name() 和 endl 在 Windows 和 mingw 中不能一起工作
- GCC (MingW-w64) 找不到基构造函数 (!?)
- GCC/MINGW中'startup files'来源
- Qt5 Project on Windows with MinGW
- Qt 5.1.0 on Windows 使用 minGW 4.8,需要很长时间才能调试
- GCC(MinGW)链接器在尝试使用GetProcessImageFileName时失败
- rand_r不在作用域中,gcc-mingw在windows上的cygwin下
- 加强windows和mingw的安装
- 为什么Windows gcc (cygwin)不写ELF头
- 当文件有换行符时,ifstream::tellg在MSVC2012和gcc(mingw)上有所不同
- C++ GCC/MinGW 路径:ssp、ext、tr1;并行,扩展,位,实验
- “__m256”的包装器产生构造函数的分段错误 - Windows 64 + MinGW + AVX 问题
- C++使用 Windows 和 MinGW 在 Eclipse 中编写的程序无法显示控制台视图的输出