【问题标题】:Build SoX with LAME support in Cygwin在 Cygwin 中使用 LAME 支持构建 SoX
【发布时间】:2013-05-15 11:33:19
【问题描述】:

我正在尝试使用 LAME (3.99.5) 在 Cygwin 中构建具有 MP3 支持的 SoX (14.4.1)。我一直在关注本指南: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 中安装多个软件包并更新路径,我得到了 configuremake 工作。专业提示是阅读安装文件以查看它们是否列出了所需的包并可能检查 Linux 发行版,因为它们的包引用依赖项和构建依赖项。

【问题讨论】:

    标签: build open-source cygwin sox lame


    【解决方案1】:

    您还需要--enable-dl-lame,以便它使用动态库:

    ./configure --with-lame --enable-dl-lame
    

    编辑以合并评论讨论中的信息:

    可能需要更多 Cygwin 包,例如 libltdllibtool-*(用于动态加载支持)、zlib 相关包(用于 libid3tag)等。

    另外,configure.ac 需要修补(在第 175 行将*mingw*) 更改为*cygwin* | *mingw*)),然后必须通过autoreconfgcc-tools Cygwin 包)重新生成configure 脚本。或者,您可以尝试在configure 中找到与configure.ac 第175 行对应的行并进行更改;在这种情况下,不需要重新生成。

    【讨论】:

    • 好的,我试过了。唯一改变的是这些行,失败的方式与原始帖子中的登录方式相同。配置:13645:检查是否 dlopen 跛脚配置:13654:结果:是
    • 那么我猜你没有libltdl支持,可能是因为configure只检查主机三元组是否包含*mingw*。您有可用的自动工具(autoreconf 等)吗?如果是这样,请尝试将 configure.ac 中的第 175 行从 *mingw*) 更改为 *cygwin* | *mingw*),然后运行 ​​autoreconf 并重试。
    • 我安装了 libltdl7 和 gcc-tools (autoreconf)。现在“配置”成功完成,但 make 失败:找不到 ltdl.h
    • 似乎 ltdl.h 包含在 libtool Cygwin 软件包之一中,而不是 libltdl7:cygwin.com/cgi-bin2/package-grep.cgi?grep=ltdl.h
    • SoX 在其INSTALL 文件中特别有一个可选库列表。 (zlib 没有被列出,因为它应该自动与 libpng 一起......通常。)否则,一个很好的信息来源可能是 Linux 发行版,因为它们的包引用依赖项并构建依赖项.然而,我没有使用 Cygwin 的经验,我从来没有使用过 Windows。
    【解决方案2】:

    zlib-devel 包提供了 -lz 所需的库。

    【讨论】:

    • 谢谢!那是最后一个包,我现在可以编译所有东西了。
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2021-04-11
    • 1970-01-01
    • 2017-05-14
    相关资源
    最近更新 更多