引用在Windows 7,我已经dowloaded并解压leptonica.zip,然后按照步骤(为了成功地运行cmake):解析外部符号_png_init_io在功能_pixReadStreamPng
cd leptonica
mkdir build
cd build
set PATH=%PATH%;C:\OCR\additionalLibs\zlib-1.2.8\build\Debug;C:\OCR\additionalLibs\zlib-1.2.8\build;C:\OCR\additionalLibs\zlib-1.2.8
set PATH=%PATH%;C:\OCR\additionalLibs\lpng143;C:\OCR\additionalLibs\lpng143\build\Debug;C:\OCR\additionalLibs\lpng143\build
cmake ..
之后,我获得:
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24213.1
-- The CXX compiler identification is MSVC 19.0.24213.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio
14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio
14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi
o 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studi
o 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR)
-- Could NOT find JPEG (missing: JPEG_LIBRARY)
-- Found ZLIB: C:/OCR/additionalLibs/zlib-1.2.8/build/Debug/zlibd.lib (found ver
sion "1.2.8")
-- Found PNG: C:/OCR/additionalLibs/lpng143/build/Debug/png14d.lib (found versio
n "1.4.3")
-- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
-- Found PkgConfig: C:/Program Files/CMake/bin/pkg-config.exe (found version "0.
26")
-- Checking for module 'libwebp'
-- No package 'libwebp' found
-- Checking for module 'libopenjp2'
-- No package 'libopenjp2' found
-- Looking for include file dlfcn.h
-- Looking for include file dlfcn.h - not found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file memory.h
-- Looking for include file memory.h - found
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file stdlib.h
-- Looking for include file stdlib.h - found
-- Looking for include file strings.h
-- Looking for include file strings.h - not found
-- Looking for include file string.h
-- Looking for include file string.h - found
-- Looking for include file sys/stat.h
-- Looking for include file sys/stat.h - found
-- Looking for include file sys/types.h
-- Looking for include file sys/types.h - found
-- Looking for include file unistd.h
-- Looking for include file unistd.h - not found
-- Looking for include file openjpeg-2.0/openjpeg.h
-- Looking for include file openjpeg-2.0/openjpeg.h - not found
-- Looking for include file openjpeg-2.1/openjpeg.h
-- Looking for include file openjpeg-2.1/openjpeg.h - not found
-- Looking for include file openjpeg-2.2/openjpeg.h
-- Looking for include file openjpeg-2.2/openjpeg.h - not found
-- Looking for fmemopen
-- Looking for fmemopen - not found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Configuring done
-- Generating done
-- Build files have been written to: C:/OCR/leptonica-master/build
libjpeg,libtiff和libgif故意不考虑,因为我只是想管理png文件。 cmake命令输出一个leptonica.sln
解决方案文件。 然后,我在Visual Studio上编译解决方案文件(为了找到头文件zlib.h ; zconf.h; png.h; pngconfig.h
我修改了INCLUDE目录,添加:C:\ OCR \ additionalLibs \ zlib-1.2.8; C:\ OCR \ additionalLibs \ lpng143) 。
但解决不编译由于错误:
LNK2019 unresolved external symbol _png_init_io referenced in function _pixReadStreamPng leptonica
LNK2019 unresolved external symbol _png_init_io referenced in function _pixReadStreamPng leptonica
这个错误来自文件pngio.h
,这在pixReadStreamPng
调用函数png_init_io
,在png.h
定义。似乎没有找到该函数的实现,是否有额外的库应该实现? png_init_io
在哪里实施?
它在png.c中实现。但它有#ifdef PNG_STDIO_SUPPORTED的保护,你可能没有定义它。请参阅png.c中的评论 –
@ GlennRanders-Pehrson请将它写为答案,它为我解决了问题! =)非常感谢 – Robson