【发布时间】:2016-11-11 03:58:02
【问题描述】:
我认为这是可能的,但我无法将以下库构建为 64 位,因为它们是作为项目的一部分构建的,但不承担项目的位数(它们是使用 cppan/ 构建的cmake):
C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.leptonica-master.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.gif-5.1.4.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.jpeg-9.2.0.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.openjpeg.openjp2-2.1.2.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.png-1.6.23.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.tiff-4.0.6.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.zlib-1.2.8.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64” 4>C:\Users\Bruce.cppan\storage\lib\amd64-msvc-19.0-32\Debug\pvt.cppan.demo.webp-0.5.1.lib :警告 LNK4272:库机器类型“X86”与目标冲突 机器类型“x64”
构建为 64 位:
- 下载并安装 Git、CMake 并将它们放在 PATH 中。
- 从https://cppan.org/client/ 下载最新的 CPPAN (C++ Archive Network https://cppan.org/) 客户端。 CPPAN 是一个源码包分发系统。在 PATH 中添加 CPPAN 客户端。 (需要 VS2015 redist。)
- 如果您有发布存档,请将其解压缩到 tesseract 目录。如果您使用的是主分支运行
- git clone https://github.com/tesseract-ocr/tesseracttesseract
- 运行
- cd tesseract
- cpan
- mkdir build && cd build
- cmake .. -DSTATIC=1
在您的 Visual Studio 版本中构建解决方案 (tesseract.sln)。
但是我省略了–DSTATIC=1 来共享。
我向解决方案x64 添加了一个新配置,然后我从链接器部分的tesseract 和tesseractmain 附加选项中删除了硬编码的/machine:X86。但是通过cppan-dummy 构建的库项目仍然是 32 位。
想法?
问候 布鲁斯
【问题讨论】:
-
“我认为这是可能的,但我无法获得 .libs:” - 请详细说明。具体来说,您认为什么是可能的?您无法获得哪些 .libs?
-
9.应该是
cmake -DSTATIC=1 ..。 -
但我不想要一个静态库,我想要一个共享库。
-
我使用 -DSTATIC=1 完成了它,然后添加了 x64 构建,然后尝试将 tesseract 项目构建为 DLL 而不是静态库。
标签: c++ visual-studio-2015 cmake 64-bit tesseract