gpt4 book ai didi

无法使用 ALSA 编译

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:01 26 4
gpt4 key购买 nike

我正在尝试在使用 PortAudio 接口(interface)的 Debian GNU/Linux 上创建一个 C 应用程序。为此,我必须使用来自 docs.gcc -lrt -lasound -ljack -lpthread -o YOU​​R_BINARY main.c libportaudio.a 编译我的程序。

为此,我安装了 libasound2-dev,并使用 apt-file search libasound.so 检查了文件的位置,这是输出:

lib32asound2: /usr/lib32/libasound.so.2
lib32asound2: /usr/lib32/libasound.so.2.0.0
lib32asound2-dev: /usr/lib32/libasound.so
libasound2: /usr/lib/x86_64-linux-gnu/libasound.so.2
libasound2: /usr/lib/x86_64-linux-gnu/libasound.so.2.0.0
libasound2-dev: /usr/lib/x86_64-linux-gnu/libasound.so

所以应该正确安装了 libasound,但是当我用这个 makefile 编译我的程序时:

DMXTest: main.c libdmx.a
gcc -static -Wall main.c -L. -ldmx -lusb -lrt -lasound -ljack -lfftw3 -g -o main libportaudio.a

我收到以下错误:/usr/bin/ld: 找不到 -lasound

如何正确链接此库?

最佳答案

您没有-staticlibasound.a,您将需要它,或者您几乎可以肯定只是删除-static来自 Makefile(可能在 LDFLAGSCFLAGS 中)。

有一个相关的 Debian 错误 522544 ,以及一个相关的 Ubuntu 错误 #993959 .

您可以从源代码构建您自己的 libasound,尽管它也使用其他库(特别是 libpthread.solibrt.solibdl .so) 我怀疑当你静态构建它时它可能会删除一些功能,尽管它在构建时受 ./configure --enable-static 支持(或尝试 --enable-shared=no --enable-static=yes)。

FWIW,glibc 维护者对静态二进制文件的使用是“discouraged”,尽管我不同意...

关于无法使用 ALSA 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15310934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com