使用msys2进行交叉编译

  • 交叉编译
  • 交叉编译环境搭建
  1. 交叉编译环境介绍
1.1 RealEvo-IDE 介绍

RealEvo-IDE 是 SylixOS 专用的集成开发环境,RealEvo-IDE 使 SylixOS 应用程序、BSP、驱动程序、共享库的开发简单高效。RealEvo-IDE 的 GCC 工具链是在标准 GCC 的基础上,加入了 SylixOS 相关元素与更加高效的库文件形成的符合 SylixOS 要求的编译工具。交叉编译环境下并不使用 RealEvo-IDE 工程管理,但需要 RealEvo-IDE 中的编译工具链。

1.2 MSYS 介绍

MSYS(Minimal GNU(POSIX)system on Windows)是一种在 Windows 操作系统上运行类似于 Unix 操作系统的环境的软件工具。它旨在为开发者提供在 Windows 平台上进行软件开发时更接近 Unix/Linux 环境的体验。

MSYS 提供了一组工具、库和 Shell,使开发者能够在 Windows 上使用类似于 Linux/Unix 的命令行工具和开发环境。它还包括了类似于 GNU 工具(例如 bash、make、grep 等)的软件,这些工具通常在 Unix/Linux 系统上使用。

MSYS 最初是为了让开发者在 Windows 上更轻松地移植和编译开源项目而创建的,特别是那些原本在 Unix/Linux 环境下开发的项目。它为开发者提供了一种在 Windows 上进行跨平台开发的方式。

在 MSYS 的基础上,还有一个叫做 MSYS2 的项目,它进一步扩展了 MSYS 的功能。MSYS2 是一个完整的软件分发平台,旨在为 Windows 用户提供一个现代化的开发环境,使用户能够轻松地使用类似于 Unix/Linux 的工具和库进行开发。它不仅提供了类似于 MSYS 的环境,还包括了一个软件包管理器(pacman),用于安装、更新和管理各种开发工具、库和应用程序。

MSYS 和 MSYS2 主要区别和关系:

继承关系: MSYS2 可以看作是对 MSYS 的继承,因为它保留了 MSYS 的一些核心概念和工具,同时在此基础上添加了更多的功能和更新的软件包。

软件包管理器: MSYS2 引入了一个名为 pacman 的软件包管理器,用于从 MSYS2 软件源中下载和安装软件包。这使得安装和管理开发工具和库变得更加便捷。

软件包更新和维护: MSYS2 通过不断维护和更新软件包,提供了更现代和稳定的软件环境。相比之下,MSYS 的软件包更新可能相对有限。

完整性和功能: MSYS2 提供了更丰富和现代化的工具和库,使开发者能够更好地进行跨平台开发和应用程序构建。

用户体验: MSYS2 更注重用户体验,并提供了更多的文档和支持,以帮助开发者使用它的功能。

MinGW 介绍

MinGW(Minimalist GNU for Windows)是一个开源的基于 GNU 的编译器套件,可用于编译 Windows 下的 C 和 C++ 程序。它是一个独立的技术,并不依赖于 Microsoft Windows SDK,也不受 VC++ 的影响,支持多种编译器。MinGW 本质上就是一个用于在 Windows 上进行 C/C++ 开发的工具包。

MinGW 的主要特点包括:

轻量级: MinGW 旨在提供一个精简的开发环境,使开发者能够轻松地使用 GNU 工具,而无需太多的依赖和复杂性。

GNU 工具链: MinGW 包含了 GNU 工具链,包括 gcc 编译器、ld 链接器等,这些工具通常在 Unix/Linux 系统上使用。这使得开发者可以在 Windows 上使用相似的工具进行编程。

原生 Windows 应用程序: 使用 MinGW,开发者可以编写和编译原生的 Windows 应用程序,而无需依赖于大型的开发环境,如 Visual Studio。

命令行开发: MinGW 主要面向命令行开发,使开发者能够在命令行中使用 GNU 工具来编写、编译和构建应用程序。

兼容性: MinGW 生成的应用程序可以直接在 Windows 上运行,不需要额外的运行时库。

开源: MinGW 是一个开源项目,有一个活跃的社区支持,提供了丰富的文档和资源。

MinGW 是一个在 Windows 上提供类 Unix 开发体验的工具,它使开发者能够使用 GNU 工具链来创建原生的 Windows 应用程序。

2 RealEvo-IDE安装

安装教程参考SylixOS 实时操作系统-翼辉信息 (acoinfo.com)

2.1获取RealEvo-IDE

安装 RealEvo-IDE 前您需要先获取安装包和注册码,获取方式如下:申请 体验版 RealEvo-IDEopen in new window。申请网站:SylixOS 集成开发套件-翼辉信息 (acoinfo.com)

2.2安装RealEvo-IDE

图 1 IDE界面

进入 RealEvo-IDE 安装引导窗口后,连续单击 下一步 至组件选择对话框

在组件选择对话框中,选择所有可选编译器。单击 安装,等待 RealEvo-IDE 自动安装完成即可

2.2注册RealEvo-IDE

安装完成后将弹出 IDE 注册界面,在注册界面顶部编辑框输入授权序列号(序列号跟随光盘或通过邮件获取),单击 Generate Register Code 进入硬盘和网卡选择对话框。

在硬盘和网卡选择对话框中选择需要绑定的硬盘和网卡,单击 OK 生成注册码。

3 MSYS2环境搭建

参考SylixOS 实时操作系统-翼辉信息 (acoinfo.com)

3.1安装MSYS2

通过Index of /distrib/x86_64/ (msys2.org)下载 msys2 最新版本。打开网站找到最新时间戳的 exe 文件,下载并安装。

根据自己的系统选一个最新版本的msys2安装包。

3.2 配置 MSYS2 支持全局环境变量

打开 msys2 安装目录,找到 msys2.ini 文件。

打开 msys2.ini 文件,修改 MSYS2_PATH_TYPE=inherit,如图所示,把注释打开并保存文件。

3.3参看环境变量是否生效

双击目录下的 msys2.exe,启动 msys2 程序。在 $ 的后面输入 echo $PATH 命令,查看环境变量是否生效。如果出现类似下图所示,则说明环境变量配置完成。

Msys2的具体搭建步骤参考SylixOS 实时操作系统-翼辉信息 (acoinfo.com)

按照教程一步步来即可。

  1. Autotools环境搭建

安装好 MSYS2 后,可以直接在 MSYS2 终端使用 pacman -S autoconf automake libtool 命令完成 Autotools 系列工具的安装。

  1. Cmake环境搭建

参考SylixOS 实时操作系统-翼辉信息 (acoinfo.com)

Cmake下载的时候选较新的版本即可。下载地址:Download CMake

我选的这个版本。

  • 交叉编译环境使用
  1. Msys2 构建 HelloWorld 工程
1.1准备工作

安装 MSYS2

MinGW

RealEvo-IDE(仅需要 IDE 生成编译 Base 工程的参数信息)

1.2realevo-ide编译base文件
1.2.1打开ide软件
1.2.2选择路径
1.2.3创建base工程
1.2.4创建工程名字
1.2.5选择工程类型
1.2.6设置参数

1.2.7 Base工程创建完成界面

1.2.8 编译base工程

1.2.9 编译成功界面

1.2msys2构建.o文件和工程文件
1.2.1创建工程

在任意文件下创建helloworld文件夹,并在文件夹中创建helloworld.c文件,文件内容如下

#include<stdio.h>int main(int argc, char** argv){

    printf("Hello SylixOS!\n");

    return (0);}

打开 msys2 终端,进入 HelloWorld 源码目录,参考 Base 工程编译参数和过程,对 HelloWorld.c 文件进行编译生成 HelloWorld.o 文件,然后进行连接,最终生成 HelloWorld 可执行文件。部署 HelloWorld 文件到 Zyzq7000 平台即可运行测试。

1.2.2编译.o文件

进入helloworld文件夹后,直接编译会报错,提示没有arm-sylixos-eabi-gcc,实际上我们在编译base工程的时候已经使用了gcc,解决办法,通过everything查找arm-sylixos-eabi-gcc可执行程序,进入其目录。

在arm-sylixos-eabi-gcc所在目录下执行以下命令

arm-sylixos-eabi-gcc.exe -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=auto -mno-unaligned-access -fno-strict-aliasing \

-O2 -g1 -gdwarf-2 -Wall -fmessage-length=0 -fsigned-char -fno-short-enums   -fPIC -DSYLIXOS \

-I"C:\Users\Administrator\workspace\0117\xiaoming\libsylixos\SylixOS" \

-I"C:\Users\Administrator\workspace\0117\xiaoming\libsylixos\SylixOS\include" \

-I"C:\Users\Administrator\workspace\0117\xiaoming\libsylixos\SylixOS\include\network" \

-c helloworld.c -o helloworld.o

红框框部分的文字从IDE中找出公共的部分

-I表示base文件生成的include文件所在的地址,查找方式如下:

生成的helloworld.o文件

1.2.3编译工程文件

在arm-sylixos-eabi-gcc所在目录下执行以下命令

./arm-sylixos-eabi-gcc.exe -mcpu=cortex-a9  -nostdlib -Wl,-shared -fPIC -shared D:\\000\\helloworld.o -L"C:\Users\Administrator\workspace\0117\xiaoming\libsylixos\Release" \

-L"C:\Users\Administrator\workspace\0117\xiaoming\libsylixos\Release" \

-L"C:\Users\Administrator\workspace\0117\xiaoming\libcextern\Release" \

 -lcextern -lvpmpdm -lm -lgcc -o D:\\000\\helloworld

这从base工程的这里找到

这是第1.2.2编译的.o工程文件的位置

路径查找与1.2.2一致

生成的工程文件存放位置。

生成的helloworld工程文件

1.2.4运行可执行文件

将可执行文件放在通用验证平台上,并运行

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小负不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值