首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译ARM的Rust程序时的ALSA连接

交叉编译ARM的Rust程序时的ALSA连接
EN

Stack Overflow用户
提问于 2019-07-15 10:08:46
回答 1查看 839关注 0票数 2

我试图交叉编译一个简单的Rust程序,使用安装了libasound-dev库的Docker容器中的libasound-dev,在Raspberry上用ALSA驱动程序记录声音。然而,链接者抱怨:

代码语言:javascript
复制
 note: /opt/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lasound
          collect2: error: ld returned 1 exit status

看起来,Cargo要求rustc使用参数-Bdynamic" "-lasound"动态地链接到asound。我如何告诉货物在哪里寻找这些ALSA库?

更新:将以下内容添加到我的Cargo.toml文件中,并将--features "alsa-backend"添加到我的cargo build命令中,这似乎推进了构建过程:

代码语言:javascript
复制
[features]
alsa-backend = ["alsa"]

[dependencies]
alsa            = { version = "0.2.1", optional = true }

它现在抛出:

代码语言:javascript
复制
note: /usr/lib/x86_64-linux-gnu/libasound.so: file not recognized: File format not recognized
          collect2: error: ld returned 1 exit status

好的,所以它链接到x86_64版本的libasound.so。我在我的Docker容器中输入了dpkg -L libasound-dev,实际上,它列出了/usr/lib/x86_64-linux-gnu/libasound.so而不是ARM版本。

如何告诉Raspbian容器链接到ARM版本的libasound.so

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 11:12:12

解决方案:

  1. 将armhf版本的libasound安装到您的Raspbian坞映像中:
代码语言:javascript
复制
apt-get install libasound-dev -y
apt-get install libasound-dev:armhf -y

(如果您只安装了libasound-dev:armhf,它就会抱怨alsa-sys链接器错误。)

  1. alsa依赖项添加到Cargo.toml中:
代码语言:javascript
复制
[dependencies]
alsa = { version = "0.2.1", optional = true }
wavy = { path = "./wavy" }
  1. alsa-backend中设置Cargo.toml标志:
代码语言:javascript
复制
[features]
alsa-backend = ["alsa"]
  1. --features "alsa-backend"传递给cargo build --target arm-unknown-linux-gnueabihf (应该应用目标)
  2. 告诉rustc在.cargo/config中使用armhf版本
代码语言:javascript
复制
[build]

[target.arm-unknown-linux-gnueabihf.libasound]
linker = "arm-linux-gnueabihf-gcc"
rustc-link-lib = ["libasound"]
rustc-link-search = ["/usr/lib/arm-linux-gnueabihf"]

(根据链接的顺序,它可能尝试使用x86版本而不是armhf版本。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57037550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档