如何为Tesseract构建静态二进制文件?

时间:2018-07-12 21:20:57

标签: c++ tesseract

我目前正在使用https://github.com/tesseract-ocr/tesseract/wiki/Compiling

上的说明从源代码(在Ubuntu 14.04上)构建Tesseract 4.0.0。

我正在使用以下./configure参数:

./configure --disable-openmp --disable-graphics --disable-opencl --enable-static LDFLAGS='-static -static-libgcc -static-libstdc++' --disable-shared

之后 makesudo make install

我要运行的已编译二进制文件是src/api/tesseract,它可以按预期工作。问题是,当我对该文件运行ldd时,它实际上显示了依赖性。

我是在错误的地方找到Tesseract的静态二进制文件(我在整个存储库中运行了一条find命令,却没有看到其他看起来像可执行文件的东西),还是我误解了静态二进制文件的含义-我的印象是,它几乎是Tesseract的可执行版本,不需要预先安装任何依赖项。

如果配置选项也有任何问题,请告诉我。我不相信--disable-openmp --disable-graphics --disable-opencl会影响静态链接与共享链接,但我将它们用于我想要的tesseract构建,因此我将它们包含在更多上下文中。

1 个答案:

答案 0 :(得分:0)

$ uname -a

  

Linux vm00 4.15.0-50-generic#54-Ubuntu SMP 5月6日星期一18:46:08 UTC   2019 x86_64 x86_64 x86_64 GNU / Linux

$ echo $ CFLAGS

  

-静态

$ echo $ LDFLAGS

  

-static -static-libgcc -static-libstdc ++

$ ./configure --enable-static LDFLAGS ='-static -static-libgcc -static-libstdc ++'--disable-shared

  

...

     

配置完成。

$ make

  

...

     

全部通过单元测试

     

...

$ 文件src / api / tesseract

  

src / api / tesseract:ELF 64位LSB共享对象,x86-64,版本1   (GNU / Linux), 动态链接 ,解释器/ lib64 / l,用于   GNU / Linux 3.2.0,   BuildID [sha1] = 96afb1f1ff8962b3f9046c40407364ebf26369d1,   debug_info,未剥离

不是静态链接