如何将c ++代码制作成xcode库

澄清澄清:我知道如何使用obj-c或swift在Xcode中创建库。 我知道如何在项目中使用它们。 我知道如何编译这些项目,所以一切正常。 我不知道的是如何获取开源C源代码(hehe)并将其编译/编译/编译到库中。


只是澄清下面的所有内容:我正在寻找一种在Swift应用程序中使用c库的方法,这意味着使用Xcode。 C库不一定要用/在Xcode中编译,我很好用其他工具。


我通常编写我自己使用的所有代码,不幸的是我只在Xcode中编写Swift。 所以我有点落后于使用框架/库。 现在我真的想探索Tesseract OCR,并且在构建所需的库时遇到了麻烦。 对我来说,最好是真正理解它是如何工作的,并且能够自己做到这一点,而不是只看Github并找到预编译的源代码。

以下两个项目的处理方式不同。 iOS版本使用预编译的库。 (.a文件)OSX版本使用包含库文件(尚未编译)的项目。

iOS编译版本

OSX编译版本

不能被拖放的库的libjpeg示例。

使用brew只会将其安装为命令行工具,而不会生成lib。

用自制软件安装Tesseract

我遇到的问题是我对这些c库知之甚少,以及如何构建它们甚至可以有效地谷歌。

我的问题:

  • 如何将c代码编译/构建到.a文件中?
  • 你如何创建一个基于c代码构建框架的xcode项目? (可选的)
  • 这一切的正确词汇是什么?
  • 我不是在寻找Tesseract的具体答案。 我想学习如何自己做这个。

    关于静态库

    本文没有提到如何实际添加c程序并让xcode创建它。 有关工作区的部分虽然很有趣。

    在Xcode中构建c项目的文章

    这其实是真正相关的。 但是,我无法在Tesseract中找到可执行文件。 执行步骤5时,所有选项都变灰。

    这看起来很漂亮:简单的c ++程序为什么不能tesseract看起来像这样? :)


    如果您想构建 Tesseract,请按照UNIX系统的说明进行操作:

    ./autogen.sh
    ./configure
    make
    sudo make install
    sudo ldconfig
    

    实际上,您不必使用xcode(它只是一个GUI /前端),而是坚持每个库告诉您使用的内容。 在某些情况下,可以使用xcode进行构建。 打算将xcode用于其建筑的项目往往包含一个xcode项目文件。

    Apple的编译器是llvm / clang,所以它可能与Linux的GNU gcc / g ++有一些细微的差别。

    编辑

    您需要先安装leptonica和automake:

    brew install automake
    brew install leptonica
    

    然后运行建筑指示。 正如安装过程中你会注意到的,库是在

    /usr/local/lib/libtesseract.a
    

    标题在:

    /usr/local/include/tesseract
    

    从那里开始,它将在您的项目中使用它。 我使用brew和命令行工具在OSX Yosemite 10.10.5上对此进行了测试。


    这是一个很大的问题。 对于这部分,我最近遇到了Xcode。

  • 如何将c代码编译/构建到.a文件中?
  • 点击Xcode项目名称Yourproj (LHS树上的根节点)
  • 在TARGETS部分选择目标Yourtarget
  • 点击上方栏上的Build Phases
  • 向下滚动到链接部分
  • Mach-O Type更改为`Static Library
  • 按照'C'语言要求,AFAIK可以在飞行中更改:

  • 从上面的最后一点,向下滚动到Apple LLVM - 语言部分
  • 改变C Language Dialect到你的选择,说GNU99
  • 如有必要,选择将Compile Sources As :'C'
  • 向上滚动到Packaging并将Product Name编辑为Yourtarget
  • 编辑Executable Prefixlib
  • Executable Extension编辑为.a
  • 现在输出应该变成像libYourtarget.a这样的文件

  • 你如何创建一个基于c代码构建框架的xcode项目?
  • YMMV,基于您选择的语言。 我还没有使用Swift。 只需将libYourtarget.a作为libYourtarget.a的其他框架添加Yournewproj 。 正确的做法是

  • 点击Xcode项目名称Yourproj (LHS树上的根节点)
  • 点击上方栏上的Build Phases
  • 确保在左侧选择了一个目标
  • 现在展开Link Binary with Libraries ,然后单击加号,然后单击Add Other按钮
  • 浏览到您的libYourtarget.a文件并单击打开。
  • 这应该工作。 如果不是这样,请尽量避免编译错误,因为它已经是YMMV了。

    希望这可以帮助。

    链接地址: http://www.djcxy.com/p/88141.html

    上一篇: How to "make" c++ code into a library for xcode

    下一篇: Define radio button size independently of screen resolution