如何将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库知之甚少,以及如何构建它们甚至可以有效地谷歌。
我的问题:
我不是在寻找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。
Yourproj
(LHS树上的根节点) Yourtarget
Mach-O Type
更改为`Static Library 按照'C'语言要求,AFAIK可以在飞行中更改:
C Language Dialect
到你的选择,说GNU99
Compile Sources As
:'C' Packaging
并将Product Name
编辑为Yourtarget
Executable Prefix
到lib
Executable Extension
编辑为.a
现在输出应该变成像libYourtarget.a
这样的文件
YMMV,基于您选择的语言。 我还没有使用Swift。 只需将libYourtarget.a
作为libYourtarget.a
的其他框架添加Yournewproj
。 正确的做法是
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