首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mt19937不是标准可能生成文件问题的成员

mt19937不是标准可能生成文件问题的成员
EN

Stack Overflow用户
提问于 2017-02-27 21:08:10
回答 2查看 3.7K关注 0票数 2

在我的程序中,我使用std::mt19937来生成随机数。在两个系统(最新的windows和ubuntu)上,程序编译得很好。但是,在第三个未知的系统上(使用make),我得到错误消息:“'mt19937‘不是'std’的成员”。

我假设makefile写得不正确。我刚接触sure文件,不知道从哪里开始。我需要强制执行c++11吗?我该怎么做呢?

代码语言:javascript
复制
all:

%.o: %.cc
    g++ -c -O2 -Wall -Wextra -pedantic $<

library-objects = \
    BigUnsigned.o \
    BigInteger.o \
    BigIntegerAlgorithms.o \
    BigUnsignedInABase.o \
    BigIntegerUtils.o \

library-headers = \
    NumberlikeArray.hh \
    BigUnsigned.hh \
    BigInteger.hh \
    BigIntegerAlgorithms.hh \
    BigUnsignedInABase.hh \
    BigIntegerLibrary.hh \

library: $(library-objects)

$(library-objects): $(library-headers)

# Components of the program.
program = rsa435
program-objects = rsa435.o

$(program-objects) : $(library-headers)

$(program) : $(program-objects) $(library-objects)
    g++ $^ -o $@

clean :
    rm -f $(library-objects) $(testsuite-cleanfiles) $(program-objects) $(program)

all : library $(program)

编辑:值得一提的是,我有cc文件和cpp文件。也许这也造成了一个问题?

EN

回答 2

Stack Overflow用户

发布于 2017-07-27 06:24:39

错误是它知道"std“名称空间,但在该名称空间中没有定义"mt19937”。

将"-std=c++11“添加到您的g++命令行,因为mt19937直到C++11才被定义。

(来源:这篇文章最初是Richard Critten发布的,作为对这个问题的评论。)

此外,您可能需要添加以下头文件:

代码语言:javascript
复制
#include <random>
票数 3
EN

Stack Overflow用户

发布于 2020-01-14 16:55:04

"-std=c++11“不够,请添加#include<bits/stdc++.h>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42486596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档