尝试安装 SoX 时失败(频谱图 - libpng)

尝试安装 SoX 时失败(频谱图 - libpng)

我正在尝试安装 SoX,并顺利完成配置,但在 make 时失败,原因如下:

/bin/sh ../libtool --silent  --tag=CC  --silent --mode=compile gcc -DHAVE_CONFIG_H
-I.  -DLADSPA_PATH="\"/var/tmp/sox/sox14/lib/ladspa\"" -DPKGLIBDIR="\"/var/tmp/sox
/sox14/lib/sox\""    -Wconversion    -g -O2 -D_FORTIFY_SOURCE=2 -Wall -W -Wmissing-
prototypes -Wstrict-prototypes -pedantic -MT libsox_la-spectrogram.lo -MD -MP -MF 
.deps/libsox_la-spectrogram.Tpo -c -o libsox_la-spectrogram.lo `test -f 
'spectrogram.c' || echo './'`spectrogram.c
spectrogram.c: In function `stop':
spectrogram.c:593: warning: implicit declaration of function `png_set_rows'
spectrogram.c:594: warning: implicit declaration of function `png_write_png'
spectrogram.c:594: `PNG_TRANSFORM_IDENTITY' undeclared (first use in this function)
spectrogram.c:594: (Each undeclared identifier is reported only once
spectrogram.c:594: for each function it appears in.)
make[1]: *** [libsox_la-spectrogram.lo] Error 1
make[1]: Leaving directory `/var/tmp/sox/sox-14.3.1/src'
make: *** [all-recursive] Error 1

我猜这更多的是链接器/指针错误而不是其他错误,因为这是spectrogram.c的开头

#include "sox_i.h"
#include "fft4g.h"
#include "sgetopt.h"
#include <assert.h>
#include <math.h>
#include <png.h>

png.h 被包含在内,这就是 PNG_TRANSFORM_IDENTITY 应该来自的地方。我错过了什么吗?

答案1

如果您无法让 lib-png 工作,并且实际上并不需要它,您可以指定它尝试在不支持 png 的情况下安装(因此没有光谱仪),方法是:

./configure --without-png

这为我解决了问题。把这个留在这里以防有人需要!

相关内容