我的问题是如何在FreeBSD 9.2中使用GCC-4.8重新编译Crypto ++?
我遇到以下错误,我注意到重新编译CrypTopp会解决问题。
undefined reference to `CryptoPP::AlignedDeallocate(void*)'
谢谢!
答案 0 :(得分:0)
我的问题是如何在FreeBSD 9.2中使用GCC-4.8重新编译Crypto ++?
对于GCC和BSD的后续版本,通常需要考虑3到4件事情。它们列举如下。如果您有特定问题,那么您应该问。
首先,安装gmake
并使用它代替BSD的贫血make
。所以你可以使用类似的东西进行编译:
cd cryptopp
gmake GNUmakefile
我认为其他依赖项包括gettext
和libiconv
。
其次,Crypto ++ makefile有时会使您选择CXX
和LD
。打开GNUmakefile
并对其进行硬编码,以便在发生时进行。
第三,Crypto ++对依赖名称查找有一些错误修复。这仅影响GCC的更高版本,如4.7或4.8及更高版本。例如,请参阅Unable to make on MingW due to unrecognized option。
所以你应该使用SVN的Crypto ++, 不 来自网站的ZIP文件。请参阅Crypto ++ wiki上的SVN,了解如何查看它。
第四,将Crypto ++安装到/usr/local
,而不是/usr
。出于某种原因,其中一个BSD(OpenBSD)将/usr/include
中的所有内容视为C文件,并且不支持C ++文件。这将导致无法解释的编译失败。您可以在Crypto ++ wiki上阅读它:Linux and OpenBSD。
所以你的安装看起来像是:
sudo gmake install PREFIX=/usr/local
还应该有一个可用的端口。如果可用,您应该尝试使用它。例如,它在FreeBSD下可用作cryptopp-5.6.3-2。 OpenBSD在Fix: net/synergy有一个补丁,所以它也可能在他们的ports树中可用。
最后,在Linux and BSD有一个涵盖Linux和BSD的Crypto ++ wiki页面。它基本上是我所知道的关于在* nix变种上构建和运行Crypto ++的一切。如果你是一个顽固的BSD人,那么我很抱歉将Linux和BSD整合在一起。