使用Xcode和libc ++时,使用AutoSeededRandomPool链接错误

时间:2014-08-12 07:49:04

标签: c++ xcode macos crypto++

第一次尝试在xcode中开发简单的c ++东西。我有一段时间没有做过c ++,如果这是微不足道的话,我通常也不会使用mac这样的熊。

我只是从这里抓取了AutoSeededRandomPool示例源代码:http://www.cryptopp.com/wiki/RandomNumberGenerator#AutoSeededRandomPool

我使用macports来获取libcryptopp + universal(非通用的那个也没有工作),我已经将libcryptopp.a添加到我的目标的'链接二进制文件库'构建阶段。

在构建过程中,我遇到了22个错误,您可以在此处看到错误:http://i.imgur.com/wIhEQot.jpg

在老式的Lion OS X macbook pro上使用xcode 4.6.2。

我错过了一些明显的东西吗?谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

您没有使用正确的编译器 - 您提到的项目声明要求是:

  • Xcode 3.2.5,
  • Xcode 4.0和GCC 4.2,
  • 定位Apple iOS

...您似乎正在使用clang++

http://www.cryptopp.com/#platforms

这也说iOS,而不是OS X - 这肯定会引起一些问题。无论如何,为什么还要烦扰这个加密库呢?使用Apple或专门用于OS X的Apple。它当然是您的选择,但它肯定不会让这条路线变得更容易。

答案 1 :(得分:1)

我发现问题的根源是链接libc ++标准库而不是更标准的libstdc ++库。 Xcode和Mac OS X目标不是问题。

如果我链接libstdc ++,那么链接错误就会消失。为了将来参考,赠品似乎是错误中可见的std :: __ 1 命名空间,尽管事后看来,从linux移植的库很可能是使用libstdc ++库的。