犰狳随机数生成器仅生成零(Windows,MSYS2)

时间:2019-02-28 11:28:56

标签: c++ armadillo

下面的测试程序应该生成一个包含5个随机元素的向量,但是当我在计算机上编译并运行它时,它仅包含零。

#include <iostream>
#include <armadillo>

using std::cout;
using std::endl;
using arma::vec;

int main()
{
    arma::arma_rng::set_seed(1);
    vec v = arma::randu<vec>(5);
    cout << v << endl;
    cout << v(0) << endl;

    return 0;
}

编译/输出

$ g++ main.cpp -o example -std=c++11 -O2 -larmadillo

$ ./example.exe
        0
        0
        0
        0
        0

0

我在Windows 10上,使用的是gcc((Rev1,由MSYS2项目构建)8.2.1 20181214)和来自MSYS2的Armadillo(9.200.6)。

软件包(mingw64子系统中的pacman):

mingw64/mingw-w64-x86_64-armadillo 9.200.6-1
mingw64/mingw-w64-x86_64-gcc-8.3.0-1

有什么原因会导致这种情况吗?

我有一个暗示,可能是因为我正在使用Armadillo的MSYS2版本,但是我不确定,还没有自己测试过编译该库。

编辑:我有点暗示这与MSYS有关,所以我在这里提出了一个问题:https://github.com/msys2/MINGW-packages/issues/5019

0 个答案:

没有答案