如何从Mac交叉编译到晦涩难懂的Linux发行版(嵌入式)?
我看到了这个问题,但我的目标是这样的如何从Mac交叉编译到晦涩难懂的Linux发行版(嵌入式)?,linux,macos,cross-compiling,embedded-linux,intel,Linux,Macos,Cross Compiling,Embedded Linux,Intel,我看到了这个问题,但我的目标是这样的 $ 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
$ 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
因此,我怀疑是否有现成的解决方案
如何从Mac编译到运行在Atom CPU上的嵌入式Linux?您的目标是64位x86平台,这一点肯定不含糊。你链接的问题是最好的起点,在嵌入式主板上启动linux发行版的虚拟机,在其中编译并将可执行文件scp到主板上(或者只是在主板上编译,你的目标并不是完全动力不足)这是我编译时做的(交叉编译?我真的不确定我做了什么。)bonnie++在Mac上运行带有NAS OS-VM的VirtualBox。我认为这应该适用于大多数可以使用简单的/配置编译的软件;进行
过程
从这里下载NAS OS SDK虚拟机(NASOS_SDK-0.7.ova)
我开始遵循这些说明,直到我到达交叉编译部分,在那里我被重定向到
跳到以开头的段落,交叉编译hello程序并执行此处描述的三个导出。工具链前缀可以在/opt
的相应目录中找到:例如,在x86\u 64-segate-nasos-sdk
中有一个目录x86\u 64-segate-linux-gnu
-使用该名称作为工具链前缀(为什么指南中没有包含此信息?)
按照说明执行配置
和生成
完成了
如果有人知道如何执行静态链接,请添加评论
如果您试图编译/configure;使
已起作用
NAS OS SDK虚拟机您使用什么构建系统?根据代码质量和其他限制,这可能并不难。主要是苹果自己的、Xcode、clang等等。我也有从MacPorts制作的GNU。我正试图编译bonnie或fio,请注意,您的Mac在设计上可能比您能找到的任何Linux发行版都“晦涩难懂”。@Roadowl是BSD,所以根据Linux标准,它的定义是“晦涩难懂”。但从市场份额来看,它在台式机上可能比所有Linux发行版加上唯一真正的竞争对手Android更为常见(但Android本身对于Linux来说非常奇怪…),我如何在VM上安装Seagate的NAS操作系统?如果我能做到这一点,下一个问题是默认情况下它不包含gcc,所以我想我必须交叉编译它,不是吗?这确实是一个模糊的操作系统。更新你的问题,包括相关信息。你看过吗?我想编译bonnie++或fio,所以我认为教程不适用。ISA很常见,但如果你想链接正确的库构建等等,那就更难了@d-b:最坏情况下,您可以使用(或交叉编译)任何GNU/Linux发行版构建静态可执行文件;这应该适用于任何内核,因为系统调用ABI是稳定的。另外,libc.so.6
有一个非常稳定的ABI,因此如果你没有任何其他库依赖,那么你通常可以在Ubuntu、Debian、Arch或任何安装上构建一个普通的可执行文件,当你在嵌入式机器上运行它时,动态链接将找到正确的符号。(至少如果它是glibc,IDK关于MUSL的话)@PeterCordes有理由不使用静态链接构建它吗?我该怎么做?