1
fcyxp 48 天前 1
默认你提到的 debian 指的是 x86 架构的 debian
1.不行,架构不同无法运行。 2.如果是 arm 的话,可以搜索 linaro 。 |
2
kita 48 天前 1
你没有 sysroot 拿 linaro 的编译有什么用,看看 debian 的 cross compiling guide
|
4
Ayahuasec 48 天前 via Android 2
openwrt 那个,之前整过一个野路子:主机上把路由器固件的根分区解包出来,然后用 chroot 和 qemu-static 直接进入这个根分区,opkg 装 gcc ,源码放进去,编译需要的软件。最后把编译产物拷贝到路由器上,一般直接就能跑。
这个操作的优点是不用折腾交叉编译环境,有的时候折腾交叉编译环境都要搞一天,或者有些固件不太好找配套的编译环境。 缺点就是主机模拟其他架构的程序,跑编译很慢,只适合偶尔用。 |
5
masterclock 48 天前 1
1. debian 是 x86 ?在 armbian 上有可能可以运行,比如安装了 qemu binfmt deng
2. 找 armbian 的 rootfs 什么的,用 docker 在 x86 的机器上跑起来,在 docker 里开发 3. mips 24kc 大概只能交叉编译,或者 qemu + mips gcc +chroot 了,openwrt 的 sdk 很容易用,还是交叉编译方便 |
6
yinmin 47 天前 via iPhone 1
armbian 有 2 个版本,基于 debian 或基于 ubuntu 。如果你使用 debian 版本的 armbian ,本质上就是标准的 debian 系统加一些 armbian 的工具和脚本。armbian 支持 arm cpu 和 x64 cpu ,可以交叉编译。
windows 下使用 vscode remote ssh 到 linux 上开发、编译、调试。最佳实践也许是买一个高性能 8 核 armbian 设备(小几百元)用于远程 ssh 开发。 |
7
openmynet 47 天前 1
找个支持交叉编译的 docker 镜像会比你瞎折腾要来得简单些。之前就用这做过 rust+cpp 在 arm32/64 的编译
|
8
qazwsxkevin OP 谢谢各位,明白了,大概好像在 github 上看到有 mips32 交叉编译环境 docker 镜像了,有时间就搞下来试试
|
9
iceheart 47 天前 via Android 1
armbiam 上安装 gcc 编译也可以啊。
|
10
flynaj 47 天前 via Android 1
openwrt 下载那个 toolchain 更 SDK 就行,要什么平台切换到相关目录就行。还有可以考虑 golang 这种跨平台的语言
|
11
kero991 44 天前
交叉编译的核心是工具链和 sysroot
工具链就是 gcc 这些,sysroot 就是一个目标架构(比如 arm64 )的根目录 工具链的坑在于,如果你单一编译,问题不大,比如你只编译 gcc 。 如果你什么项目都想试试,那你得配多少工具链?就算是 c ,用 clang 的,用 nanja 的也各不相同 sysroot 的问题更多,因为你编译任何项目,它都是有依赖的 你在本地系统只需要 apt install 或者 yum 就能安装一个依赖 你在交叉编译的 sysroot 里要配置依赖项,可是很麻烦很麻烦的。搞不好,要先从头编译 最后的最后,你需要测试环境,打包是不是完整,是不是少了什么库文件? 就我天天编译各种开源 项目的经验来说,我宁可本地,不到万不得已,绝不交叉编译 当然我有单位的国产电脑(飞腾,arm64 ),我也有 oracle 的 arm 小鸡 |