Xcode:使用C++静态库

Xcode: Using C++ static library

本文关键字:静态 C++ 使用 Xcode      更新时间:2023-10-16

我想使用在Eclipse中Xcode 4:中构建的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的未定义符号:"测试::getX()",引用自:-LibFetching.o 中的[LibFetching onlyfortest]

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

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

从问题中可以看出,您正试图将C++静态库链接到目标C++项目

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

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

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

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

您可能需要在内部版本设置的标题搜索路径中输入库标题的路径。