0

我想使用在 Xcode 4 的 Eclipse 中构建的 C++ 静态库:

例如,我有一个非常简单的库:

你好.h

class Test{ public: static int getX();};

你好.cpp

#include "hello.h"
int Test::getX(){return 10;}

因此,在 Eclipse 中构建后,我有一个库 .a。现在,我将 .a 文件和标头导入 Xcode 应用程序。问题是在 .mm 文件(我创建)中,我不能调用“int x = Test::getX();”,它显示 2 个错误:

架构 i386 的未定义符号:“Test::getX()”,引用自:LibFetching.o 中的 -[LibFetching onlyfortest]

ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

你知道我该如何解决吗?非常感谢。

4

2 回答 2

3

从问题看来,您正在尝试将 C++ 静态库链接到目标 C++ 项目

转到项目 -> 构建设置,搜索 C++ 语言方言和 C++ 标准库。为它们选择“编译器默认值”选项,它应该可以工作

还要检查是否必须将其他链接器标志设置为 -lstdc++

于 2013-05-16T20:27:48.567 回答
0

您需要将静态库拖到 Xcode 项目中。然后在左侧导航栏中选择要添加库的项目,选择项目目标(如果您有多个,则选择需要该库的目标)。

然后单击 Build Phases,并在 Link Binary with Libraries 部分(如果它不存在,则创建一个),添加您的库,也将其添加到您的目标依赖项部分。

您可能需要在构建设置的标头搜索路径中输入库标头的路径。

于 2012-07-27T08:52:00.077 回答