我安装了gcc 4.6.3
请帮我解决这个问题。首先我配置了GMP
然后配置了NTL
,但是在构建时HElib
出现此错误。当我键入 make 命令时,它显示以下错误:
cc1plus: error: unrecognized command line option -std=c++11
答案1
GCC 4.6.x 早于对 C++11 标准的支持,因此不提供
-std=c++11
。它以实验方式预测 C++11 并提供-std=c++0x
以启用该实验支持。-std=c++11
首先在 GCC 4.7.x 中可用。如果您无法升级到较新的编译器,请更改
-std=c++11
为-std=c++0x
。
继续 OP 的评论
也许你还没有INSTALL.TXT
读过HELib
包?具体来说:
在构建 HElib 之前,您可能需要查看 Makefile,并考虑调整 CC 和 CFLAGS 的一些默认值。大多数系统上的默认值应该没问题,但您可以查看建议的选项,这些选项记录在 Makefile 中。
按照此建议,编辑src/Makefile
,找到:
CFLAGS = -g -O2 -std=c++11 -pthread -DFHE_THREADS -DFHE_DCRT_THREADS -DFHE_BOOT_THREADS
并更改-std=c++11
为-std=c++0x
。
请注意,进行此更改后,不能保证使用 gcc 4.6.3(一个非常旧的编译器版本)成功构建项目;但如果不进行此更改,gcc 4.6.3 根本无法与任何程度的 C++11 支持一起使用。
您没有给出使用这样一个旧的编译器的任何理由。