交叉编译

在我们当前系统环境下编译程序,编译的程序也只在我们当前的系统环境下运行,这就属于本地编译,比如我们在X86_64平台上编译可执行文件,程序在x86_64能成功运行,这个编译就叫做本地编译。

交叉编译可以理解为在当前平台编译了一个属于另一个平台的程序,当前的平台不能运行该程序。

前期准备

ubuntu PC 开发板三者能相互ping通

我们用source insight编写一个hello.c文件

#include <stdio.h>/* 执行命令: ./hello lzl * argc = 2* argv[0] = ./hello* argv[1] = lzl*/int main(int argc, char **argv)
{if (argc >= 2)printf("Hello, %s!\n", argv[1]);elseprintf("Hello, world!\n");return 0;
}

通过FileZilla将我们的hello.c文件复制到ubuntu的路径里

然后gcc -o hello hello.c 一个可执行文件。


./hello lzl运行这可执行文件。


运行结果

通过file hello 命令查看hello这个可执行文件的运行平台。

通过配置交叉工具链来在来编译hello.c
交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。
设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。
在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。

vim  ~/.bashrc

在行尾添加下面几行.

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行 source ~/.bashrc 命令使其生效。

source  ~/.bashrc

现在开始编译生成ARM平台的可执行文件

arm-buildroot-linux-gnueabihf-gcc -o hello hello.c
file hello

通过挂载命令mount将ubuntu里的目录挂在你开发板的目录

mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt

再将我hello可执行文件复制到/home/book/nfs_rootfs 目录

最后在开发板上可以直接运行

01.IMX6ULL_交叉编译hello程序相关推荐

  1. (01)System Verilog 程序数据采集

    (01)System Verilog 程序数据采集 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 程序数据采集 5)结语 1.2 F ...

  2. linux使用cmake交叉编译arm32程序

    linux使用cmake交叉编译arm32程序 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 linux使用cmake交叉 ...

  3. 在windows上,用cmake 交叉编译arm程序

    在windows上,用cmake 交叉编译arm程序.生成器用nijia(或用MinGW,此时, cmake执行时,指定生成器为 -G "MinGW Makefiles", 编译用 ...

  4. 01 【微信小程序起步】

    01 [微信小程序起步] 1.小程序简介 小程序与普通网页开发的区别 运行环境不同 网页运行在浏览器中 小程序运行在微信环境中 API不同 由于运行环境不同,所以小程序中无法调用DOM和BOM的API ...

  5. linux:交叉编译后程序的下载方式

    1.连接好开发板串口线,网口线,电源线: 2.在PC机linux中启动minicom(串口通讯工具): 3.启动开发板电源,开发板加载linux,加载信息通过串口打印到minicom上,如minico ...

  6. arm-linux 交叉编译后程序,ARM交叉编译下,应用程序实践

    ARM交叉编译下,应用程序实践 一.首先准备一个小程序 hello.c 代码如下: #include int main(void) { printf("hello,world\n" ...

  7. linux虚拟机可以交叉编译吗,在Linux上交叉编译windows程序

    最近几天搞 wxWidgets,由于要同时编译应用程序的 Windows 版本,又懒得在虚拟机里面编译程序,于是想到用交叉编译的方式在 Linux 上编译好 Windows 版本的程序,再用 Wine ...

  8. ming window 交叉编译_Golang在windows下交叉编译linux程序

    1.下载相关程序. Golang下载:http://www.golangtc.com/download Git下载:http://git-scm.com/download/ TDM-GCC下载:htt ...

  9. 使用Rust交叉编译arm程序

    作者: 刘天明 邮箱: bellskinling@gmail.com 博客链接: http://blog.csdn.net/bellskinling 转载请注明出处. 接上文, 有了支持arm版本的R ...

最新文章

  1. 50颗传感器、超1亿像素,算力700TOPS,这个自动驾驶平台有点儿炫!
  2. Hinge Loss
  3. 小米宣布加入鸿蒙,中兴和OPPO抵制后,第一个宣布加入鸿蒙阵营的果然是魅族...
  4. 【嵌入式】C语言高级编程-嵌入式C语言简介(01)
  5. 【BZOJ1001】[BeiJing2006]狼抓兔子
  6. Java微信开发_00_资源汇总贴
  7. createplayer 多次调用 位置错误_Programming in Lualua学习第6期 Lua编译执行与错误
  8. 【解决问题】右键添加UltraEdit打开文件
  9. php连接memcache(php.ini配置)
  10. Ibatis -- 一次执行多条SQL
  11. 饿了么ui自定义表头内容
  12. 毕业半年,点滴在心中
  13. [转载]Spring zuul日志配置
  14. 2023年计算机专业毕业设计选题有哪些?(附源码)
  15. coredump 瘦身风云
  16. ambarella H2 添加文件到ext4文件系统
  17. 轻松玩转“项目管理” 群硕软件PMS正式发布
  18. 教室计算机广播控制,小学智能广播系统(模拟广播)系统解决方案
  19. android实现上班打卡记录日历查看功能
  20. 嵌入式静态显示与动态显示

热门文章

  1. 关于Unity的官方认证
  2. 网络虚拟化技术IRF、VSS、CSS对比及VRF技术
  3. 计算机第一章学什么,第一章计算机基础知识学习课件.ppt
  4. linux系统读sim卡信息,在Linux下使用串口读取SIM卡上的SMS消息使用C
  5. 以无征信办贷行骗 浙江警方捣毁一诈骗窝点刑拘44人
  6. 什么样的离开会让老板念念不忘
  7. 华科计算机学硕和武大,纠结武大和华科,看完这个分析表,你就会选了
  8. 苏州中级职称 取消计算机,2019年中级报名,取消这一项流程!报名、考试……6个问题今天统一回复!...
  9. “十步杀一人,千里不留行” React的五步夺命诗
  10. TrackStereo | 1