首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Raspian/Debian在ARMv7上为musl创建静态链接的Rust程序?

如何使用Raspian/Debian在ARMv7上为musl创建静态链接的Rust程序?
EN

Stack Overflow用户
提问于 2019-05-12 11:59:09
回答 1查看 665关注 0票数 1

我正在尝试使用Cargo中的armv7-unknown-linux-musleabihf目标在ARMv7 (Raspian/Debian)上创建一个静态链接版本的Rust程序。依赖项backtrace-sys v0.1.28的构建失败,

代码语言:javascript
复制
error: failed to run custom build command for `backtrace-sys v0.1.28`
process didn't exit successfully: `/home/pi/develop/balena.io/migrate/target/debug/build/backtrace-sys-7330a27c773191d1/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-cfg=rbt
TARGET = Some("armv7-unknown-linux-musleabihf")
OPT_LEVEL = Some("0")
HOST = Some("armv7-unknown-linux-gnueabihf")
CC_armv7-unknown-linux-musleabihf = None
CC_armv7_unknown_linux_musleabihf = None
TARGET_CC = None
CC = None
CROSS_COMPILE = None
CFLAGS_armv7-unknown-linux-musleabihf = None
CFLAGS_armv7_unknown_linux_musleabihf = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("crt-static")
running: "arm-linux-musleabihf-gcc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-static" "-march=armv7-a" "-I" "src/libbacktrace" "-I" "/home/pi/develop/balena.io/migrate/target/armv7-unknown-linux-musleabihf/debug/build/backtrace-sys-87487ee93f4ac0ac/out" "-fvisibility=hidden" "-DBACKTRACE_ELF_SIZE=32" "-DBACKTRACE_SUPPORTED=1" "-DBACKTRACE_USES_MALLOC=1" "-DBACKTRACE_SUPPORTS_THREADS=0" "-DBACKTRACE_SUPPORTS_DATA=0" "-DHAVE_DL_ITERATE_PHDR=1" "-D_GNU_SOURCE=1" "-D_LARGE_FILES=1" "-Dbacktrace_full=__rbt_backtrace_full" "-Dbacktrace_dwarf_add=__rbt_backtrace_dwarf_add" "-Dbacktrace_initialize=__rbt_backtrace_initialize" "-Dbacktrace_pcinfo=__rbt_backtrace_pcinfo" "-Dbacktrace_syminfo=__rbt_backtrace_syminfo" "-Dbacktrace_get_view=__rbt_backtrace_get_view" "-Dbacktrace_release_view=__rbt_backtrace_release_view" "-Dbacktrace_alloc=__rbt_backtrace_alloc" "-Dbacktrace_free=__rbt_backtrace_free" "-Dbacktrace_vector_finish=__rbt_backtrace_vector_finish" "-Dbacktrace_vector_grow=__rbt_backtrace_vector_grow" "-Dbacktrace_vector_release=__rbt_backtrace_vector_release" "-Dbacktrace_close=__rbt_backtrace_close" "-Dbacktrace_open=__rbt_backtrace_open" "-Dbacktrace_print=__rbt_backtrace_print" "-Dbacktrace_simple=__rbt_backtrace_simple" "-Dbacktrace_qsort=__rbt_backtrace_qsort" "-Dbacktrace_create_state=__rbt_backtrace_create_state" "-Dbacktrace_uncompress_zdebug=__rbt_backtrace_uncompress_zdebug" "-o" "/home/pi/develop/balena.io/migrate/target/armv7-unknown-linux-musleabihf/debug/build/backtrace-sys-87487ee93f4ac0ac/out/src/libbacktrace/alloc.o" "-c" "src/libbacktrace/alloc.c"

--- stderr
thread 'main' panicked at '

我在Ubuntu Linux x86_64上尝试了这种交叉编译,但在Raspian上也进行了本机编译,也得到了相同的结果。

看起来安装缺少一个编译器,但我不知道如何安装和提供它。

EN

回答 1

Stack Overflow用户

发布于 2019-05-12 12:33:17

在原生平台上,安装musl-dev和musl-tools包并调用Cargo,如下所示,从而成功构建:

代码语言:javascript
复制
CC=/usr/bin/musl-gcc cargo build --target=armv7-unknown-linux-musleabihf
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56096112

复制
相关文章

相似问题

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