想用centos静态编译ffmpeg,编译libpng的时候出现离两个错误:

错误1:

configure: error: ZLib not installed

错误2:

configure: error: in `/root/dev_env/ffmpeg-static/build/libpng-1.2.58':
configure: error: C compiler cannot create executables
See `config.log' for more details

问题分析:没有安装zlib,或者zlib静态安装后,编译libpng的时候没有正确链接到zlib库

解决方式

先保证正确安装了zlib:

wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

./configure --prefix=/root/dev_env/ffmpeg-static/target/ --static

make

make install

关键的是下面的步骤

然后编译libpng的时候加上命令CPPFLAGS和LDFLAGS正确链接zlib的头文件和库即可

CPPFLAGS : 预处理器需要的选项 如:-I (大写i指定头文件路径)
CFLAGS:编译的时候使用的参数 –Wall –g -c
LDFLAGS :链接库使用的选项 –L -l (大写L指定动态库的路径,小写L指定动态库的名称)

例如下面的链接方式即可解决,换成你的路径

PKG_CONFIG_PATH=/root/dev_env/ffmpeg-static/target/lib/pkgconfig/ ./configure --prefix=/root/dev_env/ffmpeg-static/target/ CPPFLAGS="-I/root/dev_env/ffmpeg-static/target/include" LDFLAGS="-L/root/dev_env/ffmpeg-static/target/lib" --enable-shared=no --enable-static=yes

更多推荐