我如何从 Mac 交叉编译到晦涩的 Linux 发行版(嵌入式)?
How do I cross compile from a Mac to an obscure Linux distribution (embedded)?
我看到了这个问题How to cross compile from Mac OS X to Linux x86?但我的目标看起来像这样
$ uname -a
Linux MyDevice 4.9.127-svn20747 #1 SMP Thu Jan 17 05:46:18 UTC 2019 x86_64 GNU/Linux
less /proc/cpuinfo
的一些输出
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU D2701 @ 2.13GHz
stepping : 1
microcode : 0x10d
cpu MHz : 2127.900
cache size : 512 KB
所以我怀疑是否有任何现成的解决方案。
如何在 Atom CPU 上从 Mac 编译为嵌入式 Linux 运行?
你的目标是64位x86平台,这当然不难理解。您链接的 SO 问题是最好的起点,在您的嵌入式板上启动 linux 发行版的 VM,在其中编译并将可执行文件 scp 到板上(或者只在板子本身上编译,你的目标并没有完全动力不足)
这就是我在 Mac 运行 带有 NAS OS-VM 的 VirtualBox 上编译的(交叉编译?我不太确定我做了什么。)bonnie++。我认为这应该适用于大多数可以使用简单 ./configure; make
过程编译的软件。
从这里NAS OS SDK VM (NASOS_SDK-0.7.ova) 下载https://www.seagate.com/nasos/SDK/0.7/downloads/index.html
开始遵循这些说明 https://www.seagate.com/nasos/SDK/0.7/multi-arch/index.html¹ until I reached the section Cross Compiling where I was redirected to https://www.seagate.com/nasos/SDK/0.7/cross/index.html。
跳到以 开头的段落为了 cross-compile 我们的 hello 程序 并执行描述的三个 export
那里。 TOOLCHAIN_PREFIX 可以在 /opt
中的相应目录中找到:例如,在 x86_64-seagate-nasos-sdk
中有一个目录 x86_64-seagate-linux-gnu
- 使用该名称作为 TOOLCHAIN_PREFIX(为什么哦,为什么指南中没有包含这些信息???)。
按照说明执行 configure
和 make
。
完成。
如果有人知道如何执行静态链接,请添加评论。
¹ 如果您尝试编译 ./configure; make
已经可以运行的内容,我认为没有必要这样做。
https://www.seagate.com/nasos/SDK/0.7/cross/index.html
NAS OS SDK 虚拟机
我看到了这个问题How to cross compile from Mac OS X to Linux x86?但我的目标看起来像这样
$ uname -a
Linux MyDevice 4.9.127-svn20747 #1 SMP Thu Jan 17 05:46:18 UTC 2019 x86_64 GNU/Linux
less /proc/cpuinfo
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU D2701 @ 2.13GHz
stepping : 1
microcode : 0x10d
cpu MHz : 2127.900
cache size : 512 KB
所以我怀疑是否有任何现成的解决方案。
如何在 Atom CPU 上从 Mac 编译为嵌入式 Linux 运行?
你的目标是64位x86平台,这当然不难理解。您链接的 SO 问题是最好的起点,在您的嵌入式板上启动 linux 发行版的 VM,在其中编译并将可执行文件 scp 到板上(或者只在板子本身上编译,你的目标并没有完全动力不足)
这就是我在 Mac 运行 带有 NAS OS-VM 的 VirtualBox 上编译的(交叉编译?我不太确定我做了什么。)bonnie++。我认为这应该适用于大多数可以使用简单 ./configure; make
过程编译的软件。
从这里NAS OS SDK VM (NASOS_SDK-0.7.ova) 下载https://www.seagate.com/nasos/SDK/0.7/downloads/index.html
开始遵循这些说明 https://www.seagate.com/nasos/SDK/0.7/multi-arch/index.html¹ until I reached the section Cross Compiling where I was redirected to https://www.seagate.com/nasos/SDK/0.7/cross/index.html。
跳到以 开头的段落为了 cross-compile 我们的 hello 程序 并执行描述的三个
export
那里。 TOOLCHAIN_PREFIX 可以在/opt
中的相应目录中找到:例如,在x86_64-seagate-nasos-sdk
中有一个目录x86_64-seagate-linux-gnu
- 使用该名称作为 TOOLCHAIN_PREFIX(为什么哦,为什么指南中没有包含这些信息???)。按照说明执行
configure
和make
。
完成。
如果有人知道如何执行静态链接,请添加评论。
¹ 如果您尝试编译 ./configure; make
已经可以运行的内容,我认为没有必要这样做。
https://www.seagate.com/nasos/SDK/0.7/cross/index.html
NAS OS SDK 虚拟机