澄清澄清: 我知道如何使用obj-c或swift在Xcode中创建库。我知道如何在项目中使用它们。我知道如何编译这些项目所以一切正常。我不知道的是如何使用开源C源代码(hehe)并将其构建/编译/编译到库中。
只是澄清以下所有内容: 我正在寻找一种在Swift应用程序中使用c库的方法,这意味着使用Xcode。 c库不必使用/在Xcode中构建,我可以使用其他工具。
我通常会编写自己使用的所有代码,不幸的是我只在Xcode中编写Swift。所以我在使用框架/库方面有点落后。 现在我真的想探索Tesseract OCR,我在构建所需的库时遇到了麻烦。对我来说,最好真正理解它是如何工作的,并且能够自己做到这一点,而不仅仅是查看Github并找到预编译的资源。
以下项目都以不同方式处理。 iOS版本使用预编译的库。 (.a文件)OSX版本使用包含库文件(尚未编译)的项目。
libjpeg图书馆的例子,不能拖放。
使用brew只会将其安装为命令行工具,而不会生成lib。
install Tesseract with homebrew
我遇到的问题是我对这些c库知之甚少,以及如何有效地构建它们甚至google。
我的问题:
我不是在寻找Tesseract的具体答案。我想自己学习如何做到这一点。
这篇文章没有提到如何实际添加c程序并让xcode成功。关于工作空间的部分很有趣。
Article on building c project in Xcode
这个实际上非常重要。但是,我无法在Tesseract中找到可执行文件。执行步骤5时,所有选项都显示为灰色。
看起来很漂亮:simple c++ procect 为什么看起来不像这样呢? :)
答案 0 :(得分:2)
这是一个很大的问题。对于这部分,我最近遇到了Xcode。
- 如何将c代码编译/构建到.a文件中?
Yourproj
(LHS树的根节点)Yourtarget
Mach-O Type
更改为“静态库”根据'C'语言要求,AFAIK可以动态更改:
C Language Dialect
更改为您的选择,例如GNU99
Compile Sources As
:'C'Packaging
并修改Product Name
至Yourtarget
Executable Prefix
修改为lib
Executable Extension
修改为.a
现在输出应该变成像libYourtarget.a
- 如何创建基于c代码构建框架的xcode项目?
YMMV,基于您选择的语言。我还没有用过Swift。只需将libYourtarget.a
添加为Yournewproj
的其他框架即可。这样做的正确方法是
Yourproj
(LHS树的根节点)Build Phases
Link Binary with Libraries
,然后点击加号,然后点击Add Other
按钮libYourtarget.a
文件,然后点击“打开”。这应该有效。如果没有,尝试摆脱编译错误,因为它已经是YMMV,如上所述。
希望这有帮助。
答案 1 :(得分:2)
如果您想要构建 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
然后运行建筑说明。 正如您将在 make install 期间注意到的那样,库位于
中/usr/local/lib/libtesseract.a
标题位于:
/usr/local/include/tesseract
从那以后,它就是在你的项目中使用它的问题。 我使用brew和命令行工具在OSX Yosemite 10.10.5上进行了测试。