我正在尝试使用LAME(3.99.5)在Cygwin中构建SoX(14.4.1)并支持MP3。我一直在关注本指南:http://bencos.googlecode.com/svn-history/r137/trunk/out/sox/README.win32.txt 运行“./configure”时,它告诉我“无法找到LAME”。我把lame-enc.dll放在sox目录中,但是没有检测到。任何人都可以帮我弄清楚为什么会失败?这是命令和日志文件的输出:
./configure --with-lame
...
configure:13645: checking whether to dlopen lame
configure:13654: result: no
configure:13664: checking lame/lame.h usability
configure:13664: gcc -c -g -O2 -D_FORTIFY_SOURCE=2 -Wall -W -Wmissing-prototypes -Wstrict-prototypes -pedantic -fopenmp conftest.c >&5
configure:13664: $? = 0
configure:13664: result: yes
configure:13664: checking lame/lame.h presence
configure:13664: gcc -E conftest.c
configure:13664: $? = 0
configure:13664: result: yes
configure:13664: checking for lame/lame.h
configure:13664: result: yes
configure:13689: checking for lame_get_lametag_frame in -lmp3lame
configure:13714: gcc -o conftest.exe -g -O2 -D_FORTIFY_SOURCE=2 -Wall -W -Wmissing-prototypes -Wstrict-prototypes -pedantic -fopenmp conftest.c -lmp3lame >&5
conftest.c:53:1: warning: function declaration isn't a prototype
conftest.c:55:1: warning: function declaration isn't a prototype
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lmp3lame
编辑:我通过在cygwin中安装多个软件包并更新路径来 configure 和 make 。专业技巧是阅读安装文件以查看它们是否列出了所需的软件包并可能检查Linux发行版,因为它们的软件包引用了依赖项并构建了依赖项。
答案 0 :(得分:1)
您还需要--enable-dl-lame
,以便它将使用动态库:
./configure --with-lame --enable-dl-lame
修改以合并评论讨论中的信息:
可能需要更多Cygwin软件包,例如libltdl
和libtool-*
(用于动态加载支持),与zlib相关的软件包(用于 libid3tag )等。
此外,configure.ac
需要修补(在第175行中将*mingw*)
更改为*cygwin* | *mingw*)
),然后必须通过configure
重新生成autoreconf
脚本({ {1}} Cygwin包)。或者,您可以尝试在gcc-tools
中找到与configure
第175行相对应的行并更改该行;在这种情况下,不需要再生。
答案 1 :(得分:1)
zlib-devel
包提供-lz所需的库。