ラムダ関数を使用する小規模の学校割り当てが複雑になるので、gcc呼び出しで '-std = C++ 11'が必要です。しかし、makeファイルの出力は、追加されていないことを示しているようです。私はリンクの問題がないので、ここにすべてのソースをコピーする必要はありません。ここでCFLAGSはメイクファイルで認識されません
CC=g++
CFLAGS= -std=c++11 -I. -Wall
DEPS = wordarray.h
OBJ = ayalajL03b.o wordarray.o
%.o: %.c $(DEPS)
$(CC) -c -o [email protected] $< $(CFLAGS)
L03b.out: $(OBJ)
$(CC) -o [email protected] $^ $(CFLAGS)
.PHONY: clean
clean:
rm -f -v *.o
rm -f -v *.out
出力されます:
は、ここに私のメイクファイルである
[[email protected] Lab03]$ make
g++ -c -o wordarray.o wordarray.cpp
wordarray.cpp:28:77: warning: lambda expressions only available with -std=c++11 or =gnu++11
counter([](char a)->bool{return !isvowel(a) && !isdigit(a) && isalpha(a);}, Worount].word);
は私が私が間違ってやっているのか理解助けてください。
[gccでC++ 11を有効にする方法](http://stackoverflow.com/questions/16886591/how-do-i-enable-c11-in-gcc) –
'CXX 'と' CXXFLAGS'です。とにかく '.cpp'ファイルには適用されない'%.o:%.c'のルールを削除し、もう一度やり直してください。 Makeは、 'CXX'と' CXXFLAGS'変数を使う '.cpp'ファイルから' .o'ターゲットを構築するためのルールを定義しています。 – Andrew