为 windows x64 安装 libpng 时出错

Error in installing libpng for windows x64

我尝试从 http://libpng.org/pub/png/libpng.html. I need this to use for face verification using bob (hosted by python). I'd followed the first step by installing libzip and ziplib from this answer 安装和重新安装 libpng。但是我不断收到错误消息。

这里我列出了 cmake:

的结果
-- Building for: Visual Studio 14 2015
-- Found ZLIB: c:/Python27/work/libpng-1.6.26/lib/zlib.lib (found version "1.2.8")
-- Performing Test HAVE_LD_VERSION_SCRIPT
-- Performing Test HAVE_LD_VERSION_SCRIPT - Failed
-- Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT
-- Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Python27/work/libpng-1.6.26/libpng-1.6.26

然后,这是我在构建时得到的 libpng.sln:

Severity    Code    Description Project File    Line    Suppression State
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.    png-fix-itxt    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.   png C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Error   LNK1112 module machine type 'x64' conflicts with target machine type 'X86'  png C:\Python27\work\libpng-1.6.26\libpng-1.6.26\x64\Debug\png.obj  1   
Error   LNK1112 module machine type 'x64' conflicts with target machine type 'X86'  png-fix-itxt    C:\Python27\work\libpng-1.6.26\libpng-1.6.26\x64\Debug\png-fix-itxt.obj 1   
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngfix.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.    pngimage    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.  pngfix  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.  pngunknown  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngimage    C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1   
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngunknown  C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1   
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngfix  C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1   
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.    pngstest    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngtest.vcxproj, pngunknown.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.    pngvalid    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Warning MSB8028 The intermediate directory (x64\Debug\) contains files shared from another project (png-fix-itxt.vcxproj, png.vcxproj, pngfix.vcxproj, pngimage.vcxproj, pngstest.vcxproj, pngunknown.vcxproj, pngvalid.vcxproj, png_static.vcxproj).  This can lead to incorrect clean and rebuild behavior.   pngtest C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   392 
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngvalid    C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1   
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngtest C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1   
Error   LNK1104 cannot open file 'Debug\libpng16d.lib'  pngstest    C:\Python27\work\libpng-1.6.26\libpng-1.6.26\LINK   1

据我所知,我应该处理的是x64版本。而且看起来 cmake 没有正确执行。但我不知道如何解决它。

我按照那个答案的步骤成功安装了 libpng 只是 now.I 不要认为你安装正确,因为我曾经在安装不正确时看到这些结果。

-- Performing Test HAVE_LD_VERSION_SCRIPT

-- Performing Test HAVE_LD_VERSION_SCRIPT - Failed

-- Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT

-- Performing Test HAVE_SOLARIS_LD_VERSION_SCRIPT - Failed

后来发现我选错了CMAKE_INSTALL_PREFIX和libzip的CMAKE_PREFIX_PATH。只是提醒zlib和libzip要安装在同一个路径下。并且 libpng 应该安装在与前一个相同的路径中。

您确定使用 CMake 选择了正确的生成器吗?据我所知,如果你想构建 64 位二进制文​​件,你需要选择 "Visual Studio 14 2015 Win64" 作为目标名称。