如何使用GCC-4.8重新编译Crypto ++?

时间:2015-02-16 16:38:21

标签: compilation freebsd crypto++

我的问题是如何在FreeBSD 9.2中使用GCC-4.8重新编译Crypto ++?

我遇到以下错误,我注意到重新编译CrypTopp会解决问题。

undefined reference to `CryptoPP::AlignedDeallocate(void*)'

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我的问题是如何在FreeBSD 9.2中使用GCC-4.8重新编译Crypto ++?

对于GCC和BSD的后续版本,通常需要考虑3到4件事情。它们列举如下。如果您有特定问题,那么您应该问。

-----

首先,安装gmake并使用它代替BSD的贫血make。所以你可以使用类似的东西进行编译:

cd cryptopp
gmake GNUmakefile

我认为其他依赖项包括gettextlibiconv

-----

其次,Crypto ++ makefile有时会使您选择CXXLD。打开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整合在一起。