私のプログラムでは、std :: mt19937を使用して乱数を生成しています。 2つのシステム(最新のウィンドウとubuntu)では、プログラムはうまくコンパイルされます。しかし、3番目の不明なシステム(makeを使用)では、エラーメッセージが表示されます。 "'mt19937'は 'std'のメンバーではありません"mt19937は標準翻訳のメンバーではありません。
私はmakefileが正しく書かれていないと仮定しています。私はmakefileを初めて使っていて、どこから始めるべきかわからない。私はC++ 11を強制する必要がありますか?どうすればいい?
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 [email protected]
clean :
rm -f $(library-objects) $(testsuite-cleanfiles) $(program-objects) $(program)
all : library $(program)
EDIT:ccファイルとcppファイルの両方があることに言及する価値があります。多分これも問題を引き起こしているのでしょうか?
は、あなたがこのの名前を提供することができますが「不明なシステム」? – hannibal
私は正直には分かりませんが、私はそれがマックだと思います。 – Tommizzy
g ++の行に '-std = C++ 11'を追加してください –