< 返回版块

reison1218 发表于 2020-04-10 17:00

Tags:交叉编译

最近项目写得差不多了,之前用交叉编译工具cross,还挺好用的,但最近发现一个问题,cross无法识别本地lib,path是错的,导致报错:找不到/tools/cargo.toml. 其实正确的路径是在用户目录下,怎么交叉编译的时候变成在/下面了. 再尝试解决后无果,干脆不用cross了,自己去下载相关工具链进行交叉编译,步骤如下: 1:下载linux交叉编译工具链:x86_64-linux-musl-cross 2:配好环境变量,执行x86_64-linux-musl-gcc -v命令可以打印出版本号 3:执行rustup命令添加linux-musl的target 4:配置项目的cargo.toml,在里面加入交叉编译目标,如下: [target.x86_64-unknown-linux-musl] linker = "x86_64-linux-musl-gcc" 5:执行cargo build --release --target x86_64-unknown-linux-musl 然后就报错了,错误信息: error: linking with cc failed: exit code: 1 note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-Wl,--eh-frame-hdr" "-m64" "-nostdlib" "/Users/tangjian/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-unknown-linux-musl/lib/crt1.o" "/Users/tangjian/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-unknown-linux-musl/lib/crti.o" "-L" "/Users/tangjian/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-unknown-linux-musl/lib" "/Users/tangjian/git/MyRust/net_test/target/x86_64-unknown-linux-musl/release/deps/net_test-8d10b2b9f09fee1c.net_test.b1aycne3-cgu.0.rcgu.o" "/Users/tangjian/git/MyRust/net_test/target/x86_64-unknown-linux-musl/release/deps/net_test-8d10b2b9f09fee1c.net_test.b1aycne3-cgu.1.rcgu.o" "/Users/tangjian/git/MyRust/net_test/target/x86_64-unknown-linux-musl/release/deps/net_test-8d10b2b9f09fee1c.net_test.b1aycne3-cgu.10.rcgu.o" 其实还有很多,只截取了一段错误信息,因为很多感觉重复的。 请问哪儿出问题了,怎么修复呢? 谢谢

评论区

写评论
qianjunjushi 2020-04-20 08:32

厚颜 向楼主求一份具体的交叉编译配置步骤教程

tokyohuang123 2020-04-13 21:10

哈哈 用mac的还没想到这个问题 谢谢楼主

作者 reison1218 2020-04-10 17:33

已经找到问题并解决了,在此分享一下工具链网址,方便以后有小伙伴交叉编译也许用得上 https://musl.cc

1 共 3 条评论, 1 页