GCC 4.6.x pre-dates support for the C++11 standard so does not provide
-std=c++11
. It anticpates C++11 experimentally and provides -std=c++0x
to enable that experimental support. -std=c++11
is first available in
GCC 4.7.x. If you cannot upgrade to a more recent compiler then change
-std=c++11
to -std=c++0x
.
Contd. for OP's comments
Perhaps you have not read the INSTALL.TXT
file of the HELib
package?
Specfically:
Before building HElib, you may want to look at the Makefile, and
consider adjusting some of the defaults for CC and CFLAGS. The
defaults should be OK on most systems, but you can see the suggested
options, which are documented in the Makefile.
Following this advice, edit src/Makefile
, find:
CFLAGS = -g -O2 -std=c++11 -pthread -DFHE_THREADS -DFHE_DCRT_THREADS -DFHE_BOOT_THREADS
and change -std=c++11
to -std=c++0x
.
Be aware that the project is not guaranteed to build successfully with gcc 4.6.3
- a very old compiler version - after this change; but without making this change gcc 4.6.3 cannot be used with any degree of C++11 support at all.
You have not given any reason for using such an old compiler.
g++ -version
report?