Ubuntu12.04平台下当安装了GCC4.7后,通过修改
/usr/bin/gcc和/usr/bin/g++两个链接,使它们指向gcc4.7和g++4.7,这样gcc4.7就成了默认编译程序。
但是当使用了crypto++9的程序编译时,报错。原因是crypto++中有bug。
解决办法是,下载crypto++的最新代码:http://www.cryptopp.com/cryptopp562.zip
解压后
- unzip cryptopp562.zip -d cryptopp
运行
- make
- make install
然后再创建一个链接:
- cd /usr/include/
- ln -s cryptopp crypto++
现在问题解决。
如果在KVM虚拟机里面编译,可能会遇到这种情况:
- root@dev:/usr/src/cryptopp# make
- g++ -DNDEBUG -g -O2 -march=native -pipe -c 3way.cpp
- 3way.cpp:1:0: error: CPU you selected does not support x86-64 instruction set
- // 3way.cpp - modifed by Wei Dai from Joan Daemen's 3way.c
- ^
- make: *** [3way.o] Error 1
解决方法是去掉硬件加速指令,在GNUmakefile文件中,注释一行:
- ifneq ($(GCC42_OR_LATER),0)
- ifeq ($(UNAME),Darwin)
- CXXFLAGS += -arch x86_64 -arch i386
- else
- #CXXFLAGS += -march=native
- endif
- endif
Ubuntu 13.10 已经修复,用clang 3.4编译时只需要这样安装:
- apt-get install libcrypto++-dev