I am able to compile a single file using gcc with -std=c++0x option. But I can’t do this through makefile. Here are the set of flags in my makefile (which after make complains about c++11 keywords):
MACHINE = $(shell echo `uname -s`-`uname -m` | sed "s/ //g")
CCC = CC
CCC = g++
CFLAGS = -O3
CFLAGS = -std=c++0x
CFLAGS = -pg -D_DEBUG -g -c -Wall
LFLAGS = -O
LFLAGS = -pg -g
What am I missing?
Edit:
I changed it to the following, but I still get compile errors, which I don’t get with command line gcc invocation.
CXXFLAGS=-O3 -std=c++0x -pg -D_DEBUG -g -c -Wall
This way your makefile will use all of your
CFLAGS:You’re overriding them with each “CFLAGS=…” declaration.
Moreover, it should be
CXXFLAGS, notCFLAGS.CFLAGSis for C applications.As @Florian Sowade said, you could use
CFLAGS += -O3 -std....(or CXXFLAGS..), so that users can provide their own flags when executing make.