[嵌入式linux] 迅为IMX8MM开发板Yocto系统交叉编译C程序

[复制链接]
150|1
手机看帖
扫描二维码
随时随地手机跟帖
linzhao789|  楼主 | 2022-1-6 14:41 | 显示全部楼层 |阅读模式
1 设置交叉编译工具
1 编译环境是开发的基础,首先我们来安装编译环境,在 9.1 章节我们已经将fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.14-sumo.sh 脚本拷贝到 Ubuntu
/home/topeet/linux 目录下(linux 文件夹是作者新建的目录)
2 然后输入以下命令:
./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.14-sumo.sh
142100y55sif5888ovioes.png
3 将安装路径设置保持默认,按下回车键,如果有 You are about to install the SDK to
"/opt/fsl-imx-xwayland/4.14-sumo". Proceed[Y/n]? 提示,则输入 Y 进行确认,然后输入密码,如下图所示:
142100le18jtcs0wu1muuy.png
4 安装完成后如下图所示:
142100npcbjtu30pf2pbyp.png
5 安装完成后输入以下命令设置环境变量,并输入“aarch64-poky-linux-gcc -v”检查安装是否成功。出现如下图所示的信息代表安装成功。注意:每当重启虚拟机或者打开新的终端窗口都需要重新执行设置环境变量。
. /opt/fsl-imx-xwayland/4.14-sumo/environment-setup-aarch64-poky-linux
142100zy65e5dp550gu0d6.png
.2 编写 C 程序
作者在/home/topeet/test 目录下新建一个 helloworld.c 文件,此处 helloworld.c 文件仅为事例,大家可以选择要编译的程序,hello.c 的内容为
#include
int main(){
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
return 0;
}
编写好,保存文件。
3 交叉编译 C 程序
在第一步设置交叉编译工具的窗口编译 C 程序,注意!第一步设置交叉编译工具是设置临时环境变量,只在当前设置的窗口有效,如果第一步设置交叉编译工具的窗口关闭了,请按照第一步再次打开并设置环境变量。
编译 helloworld.c 程序如下图所示:
aarch64-poky-linux-gcc helloworld.c -o helloworld
--sysroot=/opt/fsl-imx-xwayland/4.14-sumo/sysroots/aarch64-poky-linux
142100qb355njpnvpv98ni.png
编译完生成 helloworld.c 可执行文件,如下图所示:
142101izlg3u9b7esr7iz8.png
输入命令“file helloworld.c”,如下图所示:
142101natsaozftkkozz88.png
4 运行 C 程序
我们将第三步编译好的 helloworld 可执行程序拷贝到开发板上,首先将 hello 可执行程序拷贝到 U 盘上,然后将 U 盘插到开发板的 usb 口,打印信息如下图所示:
142101s9nn9n669t1xt59a.png [size=0.83em]8.png




新建挂载目录,如下图所示:
142101ndootyyjt2uh6dhh.png
挂载 U 盘,如下图所示:
142101zbp8znqbc87iib3b.png
进入到 U 盘挂载目录,将 helloworld 复制到开发板的 bin 目录下,如下图所示:
142102scxpovmbelvotnpm.png
赋予文件权限,如下图所示:
142103bvk1k4j4g1kb7bq7.png
运行程序,如下图所示:
142103cbhnhrclc9ll1r9l.png
运行程序成功,打印了三次“hello world”。

使用特权

评论回复
qq3434| | 2022-1-6 21:24 | 显示全部楼层
这个点赞

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则