我正在尝试从我的 Mac 上的源代码安装一个名为 audiowmark
(link) 的二进制文件。说明说运行 ./configure
但是当我这样做时,我遇到了一个错误,声称:
checking for _Z28zita_resampler_major_versionv in -lzita-resampler... no
configure: error: You need to install libzita-resampler to build this package.
因此,我需要安装 libzita-resampler
库。作为 C/CMake/Make 的新手,这让我有些困惑。我认为我正在正确安装这个包(我在我的 libzita-resampler.a
中看到了 usr/local/lib
),但我仍然收到上述错误。有人可以帮助指导我正确的方向以确保我安装正确吗?根据我的理解,/usr/local/lib
是在运行 gcc
.
要安装 libzita-resampler
,我找到了 GitHub 存储库(链接)并将源代码加载到我的计算机上。
我首先在这个库中创建了一个 build
目录,然后 cd
-ed 进入了它:
mkdir build && cd build
安装了cmake
后,我就可以运行了
cmake ..
为我的电脑创建了 Makefile,然后我用 Make 运行了以下命令
make
输出如下
jordan@Jordans-MBP-3 build % make
[ 20%] Building CXX object CMakeFiles/zita-resampler.dir/source/resampler.cc.o
[ 40%] Building CXX object CMakeFiles/zita-resampler.dir/source/vresampler.cc.o
[ 60%] Building CXX object CMakeFiles/zita-resampler.dir/source/resampler-table.cc.o
[ 80%] Building CXX object CMakeFiles/zita-resampler.dir/source/cresampler.cc.o
[100%] Linking CXX static library libzita-resampler.a
[100%] Built target zita-resampler
因此运行安装步骤
make install
哪个输出
jordan@Jordans-MBP-3 build % make install
[100%] Built target zita-resampler
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libzita-resampler.a
-- Installing: /usr/local/lib/cmake/zita-resampler/zita-resamplerConfig.cmake
-- Installing: /usr/local/lib/cmake/zita-resampler/zita-resamplerConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/zita-resampler/zita-resamplerTargets.cmake
-- Installing: /usr/local/lib/cmake/zita-resampler/zita-resamplerTargets-noconfig.cmake
成功将静态库 .a
添加到我的 lib
目录中。
所以有了这个设置,我假设我可以再次运行 audiowmark
的 ./configure
命令,但我仍然收到相同的错误,表明我没有正确安装这个库。是否有最后一步可以让 ./configure
步骤“找到”我安装的这个我错过的新库?
这是在./configure
脚本中查找库的相关代码。我看到它正在添加 LIBS= -lzita-resampler
所以它现在应该在我的目录路径中找到它......对吗?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _Z28zita_resampler_major_versionv in -lzita-resampler" >&5
printf %s "checking for _Z28zita_resampler_major_versionv in -lzita-resampler... " >&6; }
if test ${ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lzita-resampler $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char _Z28zita_resampler_major_versionv ();
int
main (void)
{
return _Z28zita_resampler_major_versionv ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv=yes
else $as_nop
ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv" >&5
printf "%s\n" "$ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv" >&6; }
if test "x$ac_cv_lib_zita_resampler__Z28zita_resampler_major_versionv" = xyes
then :
printf "%s\n" "#define HAVE_LIBZITA_RESAMPLER 1" >>confdefs.h
LIBS="-lzita-resampler $LIBS"
else $as_nop
as_fn_error $? "You need to install libzita-resampler to build this package." "$LINENO" 5
fi
感谢您的指导,我在这里学习。