如何将c ++代码"制作"到xcode库中

R M*_*nke 8 c++ xcode frameworks static-libraries

澄清澄清:我知道如何使用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库知之甚少,以及如何有效地构建它们甚至google.

我的问题:

  • 如何将c代码编译/构建到.a文件中?
  • 如何创建一个基于c代码构建框架的xcode项目?(可选的)
  • 这一切的正确词汇是什么?

我不是在寻找Tesseract的具体答案.我想自己学习如何做到这一点.

关于静态库

本文没有提到如何实际添加c程序并让xcode成功.关于工作空间的部分很有趣.

关于在Xcode中构建c项目的文章

这个实际上真的很重要.但是我在Tesseract中找不到可执行文件.执行步骤5时,所有选项都显示为灰色.

这看起来很漂亮:简单的c ++ procect 为什么tesseract看起来不那样?:)

Æle*_*lex 2

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

./autogen.sh
./configure
make
sudo make install
sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

你不必这样做,事实上你不应该使用 xcode(它只是一个 GUI/前端),而是坚持使用每个库告诉你使用的内容。在某些情况下,可以使用 xcode 进行构建。想要使用 xcode 进行构建的项目通常会包含 xcode 项目文件。

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

编辑

您需要首先安装 leptonica 和 automake:

brew install automake
brew install leptonica
Run Code Online (Sandbox Code Playgroud)

然后运行构建说明。正如您在make install期间会注意到的那样,该库位于

/usr/local/lib/libtesseract.a
Run Code Online (Sandbox Code Playgroud)

标题位于:

/usr/local/include/tesseract
Run Code Online (Sandbox Code Playgroud)

从那时起,就是在您的项目中使用它的问题了。我使用brew 和命令行工具在OSX Yosemite 10.10.5 上对此进行了测试。