0

我正在尝试为 iOS 构建 Assimp,它编译得很好,没有错误,但是,当我尝试在我的项目中使用它时,我在链接过程中遇到了很多错误(准确地说是 154)。在方法签名之后判断,错误与C++有关,但是,我想使用C接口。我已经测试过lipo并且该库是为我的拱门编译的,它实际上是一个胖库。它们是链接器错误,应该很容易修复,唉,我缺乏经验并没有帮助。这是带有错误的屏幕截图(第一行,因为总共有 100 多个)。

在此处输入图像描述

我应该如何调试这个?什么地方出了错?

编辑:感谢@Zadr,我设法将其缩小到 8 个错误:

在此处输入图像描述

_crc32听起来很熟悉,但还是找不到这一切背后的原因。

4

3 回答 3

2

您正在构建的库已链接到 libstdc++ 的一个版本,而您正尝试链接到另一个版本。

在项目设置中,应该有一个“C++ 标准库”字段。将其从默认选项(clang 的 libc++、iirc)更改为其他选项(gcc)。

于 2013-04-06T19:53:13.097 回答
1

除了@zadr 已经提到的内容之外,您还应该链接libz.dylib以消除最后 8 个错误。我几乎可以肯定这些功能与它有关,而且我肯定知道这些功能的Assimp用途libz

于 2013-04-06T20:14:36.487 回答
0

首先告诉我您是否必须将任何内容framework作为复制粘贴?在大多数情况下,都会产生此类问题。

通常,当您的类.m文件未存储/放入时会发生这种类型的错误Compile Sources

在这种情况下,您需要手动将此.m文件添加到Compile Sources

以下步骤描述如何手动放入.m文件Compile Sources

Select Project Form Project Manager
  |
  | 
  Targets
       |
       |
     Build Phases
          |
          |
        Compile Sources
                |
                |
        Click on '+' button and add .m file in it

这是如何将文件手动放入Compile Sources.

于 2013-04-06T20:02:42.493 回答