在编译libpng前,需要把zlib编译好,并加载到编译环境里。

CMake + VS2015 下编译zlib,及使用小例

下载与解压

libpng的官网是 http://www.libpng.org/pub/png/libpng.html ,但它的源码是存在 https://sourceforge.net 上的;具体最新的版本可以先进官网看看,再点连接过去下载

 [libpng]CMake+VS2015下编译libpng,及使用小例

我当前的版本是libpng 1.6.36

[libpng]CMake+VS2015下编译libpng,及使用小例

把里面的文件解压出来

[libpng]CMake+VS2015下编译libpng,及使用小例

CMake创建工程

看了一下,CMakeLists.txt就在这个目录下,用CMake加载一下;在Cmake-gui里,设置好source code 和build the binaries,就点击一下【Configure】:

[libpng]CMake+VS2015下编译libpng,及使用小例

加载后,别急着【Generate】需要设置一下编译后的lib、dll和头文件的安装路径了,第一次我建议设定源码目录下的路径,方便看一下编译后生成了哪些文件,不然的话可以直接设置为您本机的VC的路径【注意:不是VS的路径,而是VS下VC的路径,这是个人建议,不喜欢的后面给另外一个方法】

[libpng]CMake+VS2015下编译libpng,及使用小例

设置好这再【Generate】,基本不会再出什么问题了,就可以点击【Open Project】打开工程:

[libpng]CMake+VS2015下编译libpng,及使用小例

不安装到VC路径下

如果不喜欢把libpng安装到VC路径下时,还是需要设定安装的路径,但在安装后,需要把您设定的安装路径添加到环境变量中的Path里。

如果是用VS创建工程的, 就需要把头文件、lib和dll这些的路径添加到工程属性里。

但用CMake可以去掉手动配置的这一步, 但必须把库的安装路径添加到环境变量里,不然CMake是没查找到这个库的。本人做个测试, 如果不对可以评论指正!

编译与安装

编译

使用CMake+VS2015编译的过程很简单,经过前面的配置工作后,打开工程后,就直接右键解决方案,再点击【生成解决方案】:

[libpng]CMake+VS2015下编译libpng,及使用小例

之后就是等待了,还好libpng比较小,编译很快的:

[libpng]CMake+VS2015下编译libpng,及使用小例

[libpng]CMake+VS2015下编译libpng,及使用小例

安装

在编译成功后,这时就需要把编译生成的文件安装到前面设定好的目录下;看【解决方案】下方,有一个项目的名字为【INSTALL】,只要右键【INSTALL】→

【仅用于项目】→【仅生成INSTALL】

[libpng]CMake+VS2015下编译libpng,及使用小例

[libpng]CMake+VS2015下编译libpng,及使用小例

ok, 已经安装完毕:

[libpng]CMake+VS2015下编译libpng,及使用小例

小贴示

看到编译生成的文件名竟然带有版本号信息,我有点小小强迫症,所以我想去,这就需要修改一下CMake配置文件CMakeLists.txt:

[libpng]CMake+VS2015下编译libpng,及使用小例

[libpng]CMake+VS2015下编译libpng,及使用小例

这个时候回去cmake-gui需要删除之前缓存,再Configure和Generate,并重新编译就好了。

 

使用libpng生成图片

因为用了CMake后,基本很少用VS里的功能来创建工程了:

生成一个png图片

CMakeLists.txt

 1 cmake_minimum_required(VERSION 3.0)
 2 
 3 project(PngDemoEx1)
 4 
 5 aux_source_directory(. SRC)
 6 
 7 link_libraries(debug libpngd)    #设置Debug时使用libpngd.lib
 8 link_libraries(optimized libpng)    #设置非Debug时使用libpng.lib
 9 
10 add_executable(${PROJECT_NAME} ${SRC})
View Code

相关文章: