Windows 64bit共享dll Tesseract?

时间:2016-11-11 03:58:02

标签: c++ visual-studio-2015 cmake 64-bit tesseract

我认为这是可能的,但我只是不能将以下的libs构建为64位,因为它们是作为项目的一部分构建的,但是没有承担项目的重要性(它们是使用cppan /构建的) cmake的):

  

C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.leptonica-master.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.gif-5.1.4.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.jpeg-9.2.0.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.openjpeg.openjp2-2.1.2.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.png-1.6.23.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.tiff-4.0.6.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.zlib-1.2.8.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'   4> C:\用户\ Bruce.cppan \存储\ lib中\ AMD64的MSVC-19.0-32 \调试\ pvt.cppan.demo.webp-0.5.1.lib   :警告LNK4272:库机器类型'X86'与目标冲突   机器类型'x64'

构建为64位:

  1. 下载并安装Git,CMake并将它们放入PATH。
  2. https://cppan.org/下载最新的CPPAN(C ++存档网络https://cppan.org/client/)客户端。 CPPAN是源包分发系统。在PATH中添加CPPAN客户端。 (需要VS2015 redist。)
  3. 如果您有发布存档,请将其解压缩到tesseract目录。如果您正在使用master branch run
  4. git clone https://github.com/tesseract-ocr/tesseract tesseract
  5. 运行
  6. cd tesseract
  7. cppan
  8. mkdir build&& cd build
  9. cmake .. -DSTATIC = 1
  10. 在Visual Studio版本中构建解决方案(tesseract.sln)。 但是我省略了–DSTATIC=1来分享。

    我向解决方案x64添加了新配置,然后从链接器部分的/machine:X86tesseract其他选项中删除了硬编码的tesseractmain ..但是通过cppan-dummy项目构建的库仍然是32位。

    想法?

    此致 布鲁斯

1 个答案:

答案 0 :(得分:2)

经过大量挖掘和学习MSVC构建系统后,如果你想要一个64位共享.dll和.lib导入库,那就这样做:

转到:https://github.com/peirick/VS2015_Tesseract

  1. 克隆回购。

  2. 将build_tesseract.bat更改为64位调试,不要忘记更改调用"%programfiles%(x86)\ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" AMD64。运行build_tesseract.bat。

  3. 在libtesseract项目的预处理器定义中指定TESS_EXPORTS,并将其从.lib更改为.dll
  4. 这对于知道的人来说可能是显而易见的,困难的一点是计算出TESS_EXPORTS位,只在代码中提到,据我所知,并且还使用上面的repo,因为它具有所有依赖性。道具可以设置回购并将其全部排序。