Xcode:使用C ++静态库

时间:2012-07-27 02:00:28

标签: c++ objective-c xcode4

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

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

hello.h

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

HELLO.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查看调用)

你知道我该怎么办吗?非常感谢你。

2 个答案:

答案 0 :(得分:3)

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

转到项目 - >构建设置,搜索C ++语言方言和C ++标准库。为它们选择“Compiler Default”选项,它应该可以正常工作

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

答案 1 :(得分:0)

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

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

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