Xcode没有找到C ++静态库

时间:2017-03-19 12:46:41

标签: c++ swift xcode linker

所以我以前遇到过一些问题,但是我删除了旧的问题并将其更新到了这个问题。在这里:

我想在我的iOS Swift项目中使用C ++库。在这个社区的帮助下,我将我的库编译为静态库(.a文件)。现在我创建了一个新项目来测试它,我只做了以下步骤:

1。 创建新的Swift项目

2。 构建阶段 - >将二进制文件链接到库添加我的库(like so

3。 添加新C ++文件,不添加头文件,添加桥接头,内容如下:

// Wrapper.cpp

extern "C" void test()
{
    //Just to test the swift - c++ connection later this file 
    //shall import the main header of the library.
}

// CAS Test-Bridging-Header.h

void test();

但是现在,当我编译时,我得到this error(你也可以在左边看到我的项目层次结构)。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

要让Xcode找到您至少有两个选项的库:

  1. 在构建设置下设置库搜索路径。这可能很麻烦,因为您必须确保为正确的体系结构构建库,例如模拟器或实际设备,并使用适当的路径。

  2. 创建新工作区,将库项目和应用项目添加到工作区。在app target的Build Phases中,在单击Link Binary with Libraries部分中的+号后弹出的对话框中选择静态库(.a)文件。 Xcode将为正确的架构构建库,并将应用程序与正确的静态库链接。

  3. 现在,无论您是选择上面的选项1还是2,为正确的体系结构构建库可能都很棘手。一些事情要尝试:

    • 在Xcode中创建一个外部构建系统项目并使用makefile 随图书馆来源而来。 (文件 - >新 - >项目... - > 跨平台。)
    • 在Xcode中创建一个Cocoa Touch静态库项目。 (文件 - > 新 - >项目...... - > iOS。)您需要添加库 该项目的来源。这可能是你最好的选择 图书馆的构建并不太复杂。

    还可以选择将C ++库源直接包含到Swift项目中。

    查看此帖子是否有用:Compiling external C++ library for use with iOS project