如果想在M2 MacBook 上编译x86_64架构的tengine,configure时加哪个参数呀?
要在M1 Mac上编译x86_64架构的tengine,您需要首先安装x86_64编译工具链。具体步骤如下:
安装x86-64编译工具链:在终端输入以下命令进行安装。
brew install x86_64-elf-gcc x86_64-elf-gdb
这个命令会同时安装x86_64-elf-gcc、x86_64-elf-binutils和x86_64-elf-gdb三个工具。
配置tengine:在configure命令后面添加--host=x86_64-apple-darwin
参数,然后再运行make
和make install
命令来进行编译和安装。
需要注意的是,虽然M1 Mac使用的是ARM处理器,但它仍然支持x86_64架构的编译。然而,由于M1芯片与x86_64架构存在一些不兼容的情况,因此在编译过程中可能会遇到一些问题。
要在M2 MacBook上编译x86_64架构的Tengine,你需要使用交叉编译的方式,因为M2 MacBook采用的是Apple Silicon(ARM64)架构,而x86_64架构是针对Intel处理器的。交叉编译是指在一个平台上编译出可以在另一个平台上运行的代码。
为了在Apple Silicon上编译出x86_64架构的Tengine,你需要在运行cmake
或./configure
时添加特定的参数来指定目标架构。具体来说,你可以添加-target
参数,后跟目标架构的名称,例如x86_64-apple-darwin
。
例如,编译命令可能会像这样:
cmake .. -DCMAKE_OSX_ARCHITECTURES=x86_64
make -j4 && make install
这里,-DCMAKE_OSX_ARCHITECTURES=x86_64
告诉CMake你想要编译的目标架构。
然而,需要注意的是,即使你在Apple Silicon上成功编译了x86_64版本的Tengine,除非你的MacBook安装了Rosetta 2,否则直接在Apple Silicon上运行x86_64的应用程序可能会遇到问题。Rosetta 2是一个动态二进制翻译器,它允许ARM64 Mac运行x86_64应用程序。
如果你只是想在Apple Silicon上开发并测试x86_64版本的Tengine,你可以使用QEMU等虚拟化工具来创建一个x86_64环境的模拟。这样,你可以在模拟的环境中编译和测试Tengine,而不需要在实际的x86_64机器上。
总结来说,要在M2 MacBook上编译x86_64架构的Tengine,你需要使用交叉编译的方法,并在编译时指定目标架构。如果你想要在Apple Silicon上运行编译后的程序,你可能需要借助Rosetta 2或者使用QEMU等虚拟化工具。
mac x86_64 与 在linux x86_64 应该本质没区别。开源版本 也支持 arm的
https://github.com/alibaba/tengine-ingress
可以参考 https://github.com/alibaba/tengine-ingress/blob/master/images/tengine/rootfs/build.sh
${ARCH} 此回答整理自钉群“Tengine和Tengine-Ingress开源交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。