编译适用于 Android 的 Rust crate tinyaudio 时出现链接错误

Linking error when compiling Rust crate tinyaudio for Android

提问人:Dan S. 提问时间:9/22/2023 最后编辑:cafce25Dan S. 更新时间:9/22/2023 访问量:43

问:

我正在尝试编译一个使用 Rust crate tinyaudio 的库,但出现链接错误:

ld: error: unable to find library -laaudio

我安装了 Android Studio,并且:

  • Android SDK 平台 33
  • Android SDK 构建工具 33.0.1
  • NDK 22.1(也尝试过 25.2)
  • Android SDK 命令行工具(最新)
  • Android SDK 平台工具

我设置了环境变量:

[System.Environment]::SetEnvironmentVariable("NDK_HOME", "$env:LocalAppData\Android\Sdk\ndk\22.1.7171670", "User")
[System.Environment]::SetEnvironmentVariable("ANDROID_HOME", "$env:LocalAppData\Android\Sdk", "User")
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Android\Android Studio\jbr", "User")

然后重新启动系统。

我尝试添加其他变量:并指向与并重新启动的相同路径,但没有结果。ANDROID_NDK_HOMEANDROID_NDK_ROOTNDK_HOME

我尝试从 NDK 25.2 更改为 22.1,因为一些用户建议使用较旧的库可以解决一些类似的链接错误。

我尝试重新安装 Android 13.0 SKD 软件包,因为它缺少 Android 33 和 Android 13.0 Platform SDK 33-ext5 的源代码,但没有结果。

我显然错过了一些东西,但我不知道那可能是什么。

它可能必须与 NDK 有关,因为从 25.2 更改为 22.1 会产生另一个错误:

ld: error: unable to find library -laaudio
ld: error: unable to find library -lunwind

我看到在其他一些帖子中被提及,但从 NDK 更改为 NDK 似乎很愚蠢,看看其中一个是否有效。我明天会这样做,但在那之前,我希望有人知道我可以尝试什么。-lunwind

rust 交叉编译 链接器错误 android-audio

评论


答: 暂无答案