赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 迁移服务
  6. 将x86应用迁移到倚天云服务器
  7. 软件迁移
  8. 源码迁移
  9. MakeCMake构建文件

MakeCMake构建文件

  • 源码迁移
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

Make/CMake工具用于构建CMakeLists.txt、Makefile文件。CMakeLists.txt、Makefile文件中涉及的迁移内容主要是用于指定数据类型、处理器架构、代码生成等编译选项。本文介绍从x86平台迁移到倚天云服务器时,如何对这些文件进行相应修改。

C/C++添加-mabi=lp64编译选项

-m64是x86平台应用程序编译选项,编译后产生的代码将运行在64位模式下。但是在倚天云服务器上不支持该选项,需将-m64修改为-mabi=lp64。

C/C++强制添加-fsigned-char编译选项

char类型在x86架构和ARM架构下默认是否带符号不一致,在x86架构下默认为signed char(有符号字符型),在倚天云服务器默认为unsigned char(无符号字符型)。x86架构代码迁移到倚天云服务器时,需要强制指定char类型变量为signed char(有符号字符型)。

C/C++指定处理器架构选项

在倚天云服务器上编译时,需要将处理器架构的选项march mtune mcpu修改为-march=armv8-a+sve2 -mcpu=neoverse-n1,使编译器能够按照倚天云服务器的微架构和指令集生成可执行程序,以提升性能。

示例说明

从x86平台迁移Make/CMake构建文件到倚天云服务器时,具体代码修改示例如下所示。

源代码:

CFLAGS=-g3 -O2 -DNDEBUG -m64  -Wall -march=corei7

修改后代码:

# GCC 10(针对 Neoverse N1)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n1 -fsigned-char

# GCC 11(针对 Neoverse N2)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n2 -fsigned-char
相关文章

CC++语言迁移 2025-04-01 12:00

C/C++属于静态编译语言,C/C++编译是将源代码经由编译器、汇编器处理生成机器指令,再通过链接器和库函数结合生成可执行程序。但x86平台和ARM平台属于不同的架构,指令集也不同,其开发的程序从x86平台迁移到ARM平台时,必须重新编译。本文介绍从x86平台迁移到倚天云服务器时,如何对C/C++中

Java语言迁移 2025-04-01 12:00

本文介绍如何将x86平台的Java语言迁移到倚天云服务器。 背景信息 由于Java应用会存在依赖的Java包,并且经常通过JNI调用C编译的本地库,如果直接迁移,可能会带来兼容性问题。迁移时可通过以下方法解决兼容性问题: 升级必要的依赖包</

MakeCMake构建文件 2025-04-01 12:00

Make/CMake工具用于构建CMakeLists.txt、Makefile文件。CMakeLists.txt、Makefile文件中涉及的迁移内容主要是用于指定数据类型、处理器架构、代码生成等编译选项。本文介绍从x86平台迁移到倚天云服务器时,如何对这些文件进行相应修改。 C/C++添加-mab

Python语言迁移 2025-04-01 12:00

本文介绍x86平台的Python如何迁移到倚天云服务器。 Python是一种解释型脚本语言,Python代码与平台无关,各大操作系统都已经支持了ARM平台的Python。在ARM平台可以直接使用Python,应用代码无需编译,可直接运行。 以Alibaba Cloud Linux 3为例,可以使用y

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号