由于 这两款的版本可能不对应 编译的时候 libpng中是已经预先 设定了指定的 zlib 版本 比如 1.2.8版本 所以要根据需求改名字。
libpng用于图片处理,zlib用于压缩。两者密切相关,libpng依赖zlib。
复制 自:lemianli
编译库:
1. 先下载 libpng(http://sourceforge.net/projects/libpng/files/)和libz(http://zlib.net/zlib-1.2.7.tar.gz),将libpng解压,如C:\workspace\libpng\。
2. 将libz解压,改名zlib放到libpng同级目录,如C:\workspace\zlib。
3. 进入libpng\projects\visualc71\,用visual studio打开工程文件,方案中会有三个子工程:libpng, pngtest, zlib。直接编译,不出意外会在Win32_DLL_Debug目录下和Win32_DLL_Debug\ZLib目录下生成zlib1d.dll, libpng15d.dll, libpng.lib和zlib.lib等库文件。
4.若报错,拷贝scripts/pnglibconf.h.prebuilt到源码目录,改名为pnglibconf.h
对于要用到这两个库的工程,主要需要做三件事:
1. C/C++常规->附加包含目录中把包含png.h等头文件的目录加进来
2. 链接器->输入->附加依赖项中加zlib.lib;libpng.lib。
3.通用属性->VC++ 目录->库目录中把放着zlib.lib和libpng.lib的目录加进来。
dll 是无法添加的?????
然后 cd 无法切换 盘符 采用直接 E:
然后按照 https://blog.csdn.net/moyumoyu/article/details/7950528 进行配置
可以直接带上头文件 #include "fftw3.h" 即可
dll 放在 中并不行 windows/system32
还是放在 C:\Windows\SysWOW64 解决的问题。
这两句话要放在 最前面才行。 M_PI
#define _USE_MATH_DEFINES
#include <cmath>
解决 fopen 函数的安全性 warning问题:
(无法解决)1、在文件开头添加 #define _CRT_SECURE_NO_WARNINGS
(解决)3、在 项目->属性->C/C++->预处理器->预处理器定义中添加_CRT_SECURE_NO_WARNINGS
只生成了 libpng16, 未生成libpng16d 。 是通过改名字成libpng16d 解决的。
全部为32位的。
dll 全部都 放在了: C:\Windows\SysWOW64
debug 的速度很慢
release 则要对应release的 pnglib。dll
%(AdditionalIncludeDirectories) 附加包含库目录
E:\software\programming\MATLAB\MATLAB2017a\extern\include\win64
E:\software\programming\MATLAB\MATLAB2017a\extern\include
现在 改为 2018b了
E:\software\programming\MATLAB\2018b\extern\include\win64;E:\software\programming\MATLAB\2018b\extern\include;
D:\my project\VSProjects\bm3dDenoising\BM3D C++\zlib-1.2.8
D:\my project\VSProjects\bm3dDenoising\BM3D C++\lpng
%(AdditionalLibraryDirectories) 附加库目录
E:\software\programming\MATLAB\MATLAB2017a\extern\lib\win64\microsoft;
改为:
E:\software\programming\MATLAB\2018b\extern\lib\win64\microsoft;
用到的 lib
libmat.lib
libmx.lib
libmex.lib
libeng.lib
zlib.lib
libpng.lib
libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib
最后转到 x64后 发现 dll 要放到system32才行。!!!!!!!!!
x64后 程序快了一倍。