加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 什么是交叉编译
    • 交叉编译链安装
    • 交叉编译链使用
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译

09/29 09:31
670
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

什么是交叉编译

交叉编译是指在一个平台上生成可以在另一个平台上执行的代码。由于不同的体系结构有不同的指令系统。因此,不同的cpu需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同的cpu的对应的可执行的二进制文件。

交叉编译链安装

建立交叉编译环境又可分为安装SDK(其中包含了交叉编译工具链)和设置交叉编译环境变量。

SDK路径:EF1开发板资料包/06-常用工具/06-1 编译工具安装脚本/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh

将上述资料拷贝到ubuntu系统的/home/elf目录下。

并在该目录下执行:

elf@ubuntu:~$ sudo ./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh

命令行会提示:Enter target directory for SDK (default: /opt/fsl-imx-x11/4.1.15-2.0.0)

连续两次按下回车键,程序将会自动安装交叉编译工具链(交叉编译工具链安装一次即可,更换终端或重启系统不必重新安装)。安装过程中一定要保证网络畅通,Ubuntu系统可以访问外网。

等待SDK安装,如下图通过打印信息可以看出安装成功。

交叉编译链使用

设置环境变量

注意:

  • 设置环境变量之后,只要不更换终端,下次再编译就不需要重新设置。
  • 如果重新打开新终端或者切换账户,编译前需要重新设置环境变量。

设置编译环境主要是指定目标架构和交叉编译工具链,以及编译过程中使用到的一些库的路径等,使用如下命令配置(.后边有空格):

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

然后使用命令arm-poky-linux-gnueabi-gcc -v判断是否设置成功(注:-v前边有空格)。正常情况下会打印出gcc的版本信息:gcc version 5.3.0 (GCC),

编译helloworld

在讲“GCC编译器”章节,使用ubuntu的GCC编译器编译生成了hello_ubuntu程序,在此章节,将使用安装的开发板的交叉编译器编译同一个hello.c文件,生成hello_board程序,使用file文件可以看出两个交叉编译器的不同。

注意:执行环境变量后,交叉编译工具重命名为CC,在编译程序时需要用$CC。

相关推荐

电子产业图谱