linux笔记(2):vscode插件remote WSL远程使用交叉编译工具链(全志D1-H)

news2025/7/20 21:10:35

文章目录

  • 1.前期准备
    • 1.1 Windows有对WSL文件读写的权限
    • 1.2 WSL的C语言编译环境已经搭建完毕
  • 2.在windows的vscode安装remoteWSL插件
  • 3.从ubuntu启动windows端的vscode
  • 4.使用vscode编译ubuntu端的c文件
    • 4.1 在《tasks.json》指定可视化make命令
    • 4.2编写Makefile文件
    • 4.3 开始编译
      • 4.3.1 打开《终端->运行任务》
      • 4.3.2 点击 make
      • 4.3.3 在ubuntu测试刚才编译后的文件
      • 4.3.4 修改一下源码,重复上面的流程,确认编译有效
  • 5. 使用D1-H的交叉编译工具链测试
  • 6.测试源码链接

本人linux还没入门,这个只是学习笔记,方便自己查阅。有不对的地方,请大家不吝赐教。
这里使用linux自带的gcc编译器做练习,演示,学习,当然我们的最终目标是编译东山哪吒开发板(D1-H)app应用程序。

1.前期准备

1.1 Windows有对WSL文件读写的权限

从windows的资源浏览器进入ubuntu-18.04的虚拟硬盘:地址栏输入 \\wsl$
然后新建一个文件夹:
在这里插入图片描述
在文件夹里面新建一个txt文件。如果成功,说明具备读写权限。这样我们可以非常方便的操作linux的文件。
我的记性差,老忘记linux命令,加上懒,键盘输入不够快,在linux操作非常痛苦。

1.2 WSL的C语言编译环境已经搭建完毕

这里需要的是gcc编译器,make。

2.在windows的vscode安装remoteWSL插件

在vscode的插件管理中心搜索wsl(我这里已经安装好,所以没有安装的按键):
在这里插入图片描述
安装完毕后,在第一步的刚刚新建的文件夹 test 里面再新建一个文件夹,把我的测试代码(见文章底部)放进去。
在这里插入图片描述

3.从ubuntu启动windows端的vscode

在ubuntu进入 /home/hwd/test/hello2,并输入命令(code 和小数点中间有空格):

code .

在这里插入图片描述
此时,windows端会自动开启一个vscode应用:
在这里插入图片描述

4.使用vscode编译ubuntu端的c文件

我们看看《hello2》文件夹里面的文件:
在这里插入图片描述

4.1 在《tasks.json》指定可视化make命令

我还没有习惯使用命令行编译程序,非常渴望有可视化的编译工具,比较依赖鼠标。
vscode会根据工程目录下的文件夹 .vscode 里面的 文件 tasks.json 生成可视化命令。这里的 tasks.json 非常简单:

{
    "tasks": [
        {
            "type": "shell",//任务类型
            "label": "make",//任务名称(在vscode看到的名称)
            "command": "make",//命令行:编译器(可执行文件)的路径
        }
    ],
    "version": "2.0.0"
  }

功能等同于下面的命令make:
在这里插入图片描述

4.2编写Makefile文件

这里用一个最简单的Makefile文件:

CROSS_COMPILE = /usr/bin/
AS		= $(CROSS_COMPILE)as
LD		= $(CROSS_COMPILE)ld
CC		= $(CROSS_COMPILE)gcc
CPP		= $(CC) -E
AR		= $(CROSS_COMPILE)ar
NM		= $(CROSS_COMPILE)nm
test : main.c 
	$(CC) -o test main.c 

在这里插入图片描述

4.3 开始编译

测试helloword(应该是helloworld),反正韦东山老师的例程是这样的:

#include <stdio.h>

int main(int argc, char* argv[])
{
    printf("hello2word!\n");
    return 0;
}

4.3.1 打开《终端->运行任务》

在这里插入图片描述

4.3.2 点击 make

在这里插入图片描述
第一次会弹出一个窗口,选择“从不扫描此任务的任务输出”,下次就不会弹出这个窗口:
在这里插入图片描述

此时,如果c代码没有错误,就会正常输出:
在这里插入图片描述
根据提示,按任意键关闭终端。

4.3.3 在ubuntu测试刚才编译后的文件

在这里插入图片描述

4.3.4 修改一下源码,重复上面的流程,确认编译有效

改动一下打印输出:

printf("hello2word!123\n");

再次编译,运行:
在这里插入图片描述

5. 使用D1-H的交叉编译工具链测试

把Makefile的CROSS_COMPILE改成交叉编译工具链的路径:

CROSS_COMPILE = /home/hwd/eLinuxCore_dongshannezhastu/toolchain/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-

保存,点击 终端->运行任务->make ,编译后,这个文件应该是无法在pc上面运行的,我们使用file命令查看一下信息:

root@SK-JNTINRTMRDZW:/home/hwd/test/hello# file test
test: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-riscv64xthead-lp64d.so.1, for GNU/Linux 4.15.0, with debug_info, not stripped
root@SK-JNTINRTMRDZW:/home/hwd/test/hello# 

编译完成后,vscode界面的终端就是ubuntu的终端:
在这里插入图片描述

6.测试源码链接

链接:https://pan.baidu.com/s/1A0L9msimWU8x58HRwbQ_8Q?pwd=f0ho
提取码:f0ho

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

27服务-安全访问状态转换

诊断协议那些事儿 诊断协议那些事儿专栏系列文章&#xff0c;本文将介绍安全访问状态图——作为UDS27服务的规范性附件。 可参考前两篇文章&#xff1a; 27服务-SecurityAccess UDS - 深论Security Access Service 27服务的初衷就是防止无权限人员进行非法数据操作&#xff…

Day801.内存问题排查方案 -Java 性能调优实战

内存问题排查方案 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于内存问题排查方案。 碰到内存持续上升的情况&#xff0c;其实很难从业务日志中查看到具体的问题&#xff0c;那么面对多个进程以及大量业务线程&#xff0c;该如何精准地找到背后的原因呢&#xff1…

STM8S903K3基于ST Visual Develop开发定时器1中断示例

STM8S903K3基于ST Visual Develop开发定时器1中断示例 &#x1f4cc;相关篇《STM8S903K3T6C基于IAR开发GPIO点灯示例》 &#x1f389;在基于STVP环境下和IAR环境下&#xff0c;如果都使用寄存器操作&#xff0c;那么差异不大&#xff0c;主要在中断函数的书写上有差异。 &#…

QSystemTrayIcon——实现系统托盘

QSystemTrayIcon类 QSystemTrayIcon QSystemTrayIcon是qt中专门用于处理系统托盘的类 头文件#include qmakeQT widgetsSinceQt 4.2InheritsQObject QSystemTrayIcon 支持Windows、macos和部分Linux桌面环境&#xff0c;可以通过 QSystemTrayIcon::isSystemTrayAvailable()方…

0基础学习——了解操作符的那些事(一)

小叮当的任意门操作符分类1. 算数操作符2. 移位操作符二进制&#xff08;小插曲&#xff09;左移动操作符右移操作符3. 位操作符& 按位与 &按位或 |按位异或 ^赋值操作符复合赋值符单目操作符操作符分类 在这里我们有&#xff1a;算数操作符 移位操作符 等 今天我们就先…

uni-App获取地图address与高德地图API配合

现在使用获取地图&#xff0c;不需要再去安装sdk&#xff0c;只需要和我一样执行下方代码可以解决问题&#xff08;这里会从先获取经纬度&#xff0c;再到经纬度转成具体的地址&#xff0c;最后补充定位当前位置&#xff09;&#xff0c;并且当中会提及到很多&#xff0c;自己开…

深度学习模型的参数、计算量和推理速度统计

在没有过拟合的情况下&#xff0c;相同模型结构下&#xff0c;一般模型的参数量和计算量与最终的性能成正比&#xff0c;在比较不同模型性能时&#xff0c;最好能保持模型参数量和计算量在相同水平下&#xff0c;因此相应参数的统计很重要。这里只进行理论计算&#xff0c;最终…

MySQL的下载与安装

1. 下载地址 官网&#xff1a;https://www.mysql.com 2. 打开官网&#xff0c;点击DOWNLOADS 然后&#xff0c;点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Community Server 这里在Windows 系统下推荐下载 MSI安装程序 &#xff1b; 点击 My Go to Download Page…

中国医药院外流通市场分析

医药流通行业概览 医药流程市场主要分为院内、院外。 与院内市场终端相比&#xff0c;院外市场终端(特别是基层医疗层级终端)数量更多、规模更 小以及分布分散。此外&#xff0c;院外市场终端的服务区域半径有限&#xff0c;仅服务于一定地理区域内的 终端客户。因此&#xff…

【面试题】 ES6 类聊 JavaScript 设计模式之行为型模式(二)

本文是《ES6 类聊 JavaScript 设计模式》的第四篇&#xff0c;介绍第三种类型的设计模式行为设计模式&#xff0c;其特别关注对象之间的通信。 在软件工程中&#xff0c; 行为型模式为设计模式的一种类型&#xff0c;用来识别对象之间的常用交流模式并加以实现。如此&#xff0…

【Linux】进程控制

目录&#x1f308;前言&#x1f338;1、进程创建&#x1f361;1.1、概念&#x1f362;1.2、fork()之后执行顺序&#x1f367;1.3、fork()返回值&#x1f368;1.4、写时拷贝&#x1f369;1.5、fork创建失败问题&#x1f341;2、进程终止&#x1f372;2.1、概念&#x1f371;2.2、…

【附源码】Python计算机毕业设计数据学院工作量管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

力扣刷题day48|583两个字符串的删除操作、72编辑距离

文章目录583. 两个字符串的删除操作动态规划思路一动态规划思路二动态规划五部曲72. 编辑距离思路动态规划五部曲583. 两个字符串的删除操作 力扣题目链接 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符…

K_A05_001 基于 STM32等单片机驱动8X8点阵模块(MAX7219)显示0-9

目录 一、资源说明 二、基本参数 1、参数 2、引脚说明 三、通信协议说明 工作时序 对应程序: 四、部分代码说明 1、接线说明 1.1、STC89C52RC8X8点阵模块&#xff08;MAX7219&#xff09; 1.2、STM32F103C8T68X8点阵模块&#xff08;MAX7219&#xff09; 2、亮度调节 五、基…

Python中内置数据库!SQLite使用指南!

&#x1f4a1; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; Python3◉技能提升系列&#xff1a;https://www.showmeai.tech/tutorials/56 &#x1f4d8; 本文地址&#xff1a;https://www.showmeai.tech/article-detail/390 &#x1f4e2; 声明&#xff1a;版权所有&#xf…

Docker数据卷

Docker数据卷、Docker安全Docker数据卷Docker数据卷管理bind mountdocker数据卷两种方式不同和相同卷插件简介convoy卷插件实践Docker数据卷 主要解决存储问题、容器数据滞留 Docker数据卷管理 bind mount “-v”宿主机路径容器内nginx发布目录 新建一个首页 现在容器内目录…

猿创征文|工具百宝箱-编辑器-笔记工具-日常小工具-原型设计工具

这篇文主要介绍了开发者工具之外的一些日常小工具&#xff0c;我用这些小工具主要完成什么工作。分享给大家 官方活动入口&#xff1a;「猿创征文 」第四季 | 2022 年我的开发者工具 猿创征文&#xff5c;工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP…

pdf文件转txt怎么转?这几个方法你值得收藏

平时我们在网络上搜索资料的时候&#xff0c;会发现很多资料都是以PDF格式显示的&#xff0c;虽然这种文件格式很方便我们查看&#xff0c;但是如果将其保存到手机中&#xff0c;又太占用内存了。其实我们可以将其转换成txt格式&#xff0c;因为我发现它不仅不占空间&#xff0…

助力数据中心双碳发展,存储如何变得越来越绿?

2022年11月10日&#xff0c;我看到曙光发了首款液冷存储&#xff0c;目标锁定数据中心PUE1.1以下。在“双碳”发展趋势下&#xff0c;聚焦液冷存储与液冷服务器的创新&#xff0c;曙光对绿色数据中心的可持续发展将带来行业引领效应。 双碳大趋势下&#xff0c;绿色存储呼之欲出…

计算机网络复习

考试重点 要掌握OSI七层模型&#xff0c; 会根据数据画模拟和数字信号的图&#xff0c;尤其是TCP和UDP所提供的服务&#xff0c; 掌握TCP连接建立和释放的完整过程&#xff0c; 掌握滑动窗口的概念&#xff0c; 还要了解端到端的含义&#xff0c; 了解ARP、ICMP、CIDR等协议的…