Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

  • Windows+VSCode交叉编译在Linux-Arm环境上运行的程序已关闭评论
  • 246 次浏览
  • A+
所属分类:linux技术
摘要

一、简介  本文主要介绍在Windows平台上用VSCode配置交叉编译,从而可以一键编译出运行在Linux-Arm环境中的程序或库。

一、简介

  本文主要介绍在Windows平台上用VSCode配置交叉编译,从而可以一键编译出运行在Linux-Arm环境中的程序或库。

二、准备工具

   vscode

  ② cmake

  ③ mingw

  ④ 交叉编译链——aarch64-linux-gnu

以上4个工具打包好的下载地址:https://pan.baidu.com/s/1b9LJerl9F86XnSpjXGbGEA?pwd=0pwj  提取码:0pwj

下载后解压完可以得到一个win-cross-compiler文件夹,然后不用动。

三、详细步骤

  1.安装vscode(这个就不详细说了,相信应该都会安装。。)

  2.安装完后在vscode扩展中搜索并下载安装这些插件。(点击下载后自动安装)

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

  3.在vscode中按组合键(ctrl+shift+p), 会弹出命令窗口,然后输入 cmake edit, 选择下图中的"编辑用户本地CMake工具包"

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

 

   4. 然后像下图中一样添加kit, name可以随便起,方便自己知道就行, toolchainFile是指定文件arm.cmake的路径(改成自己电脑上的路径),文件arm.cmake在上面准备工具的下载包中。

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

  5. 修改arm.cmake文件,其实就是将里面的路径改成自己电脑上的路径就行,其他不用改。下图中的两处 "F:"替换成自己电脑上的路径即可(上面下载的工具包的解压路径)。

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

   6.将下载好的工具包里的cmake和mingw添加到系统环境变量中。

  ① 按win键, 然后输入“高级系统设置”, 然后点击查看高级系统设置

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

 

   ② 点击弹出的窗口右下角的环境变量

   Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

   ③ 找到系统变量里的Path,双击Path的值进行编辑

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

   ④ 在弹出的窗口中点击新建两次,按照下图分别填写cmake以及mingw的路径,“F”换成工具包文件夹在自己电脑上的路径,其他不变

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

  ⑤ 然后点击确定以及应用,然后重启电脑,否则设置的环境变量不生效。

 

 

 

   7.重启后打开vscode,点击下图中的No active kit(如果之前选过kit则显示的可能是其他可用kit)

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

   8.点击后会弹出一个选择kit的窗口,选择第4步你添加的kit,没有意外的话,此时已经是可以进行编译了。

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

   9.创建一个cpp和cmakelist.txt进行编译测试

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

   Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

   10.点击build进行一键编译 

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

   11. 生成可执行文件(需拷贝到linux-arm环境上运行)

  Windows+VSCode交叉编译在Linux-Arm环境上运行的程序

 

 

四、总结

  以上步骤是我自己在一台新电脑上测试成功的,按照步骤来基本没什么问题,工具包也都提供下载地址了,算是保姆级教程了。一则为了记录,二则分享下心得,让后来者更加容易上手。有什么问题欢迎留言。