【嵌入式——C语言】VScode编写C程序、交叉编译

【嵌入式——C语言】VScode编写C程序、交叉编译

  • 第一步
  • 第二步
  • 第三步
  • 第四步
  • 第五步
  • 第六步
  • 第七步
  • 第八步

第一步

下载Visual Studio Code下载地址
然后直接安装就可以了。

第二步

前提是你的电脑上安装了WSL。。。
打开vscode的扩展,输入WSL进行安装
在这里插入图片描述
在这里插入图片描述
安装完之后在窗口左下角点击蓝色的框框,然后选择连接到WSL
在这里插入图片描述在这里插入图片描述
这个时候就可以直接打开Ubuntu中的目录或者文件从而进行编译了。

第三步

要想编辑C/C++程序,还需要在扩展中添加以下工具。
在这里插入图片描述
安装CMake
在这里插入图片描述

第四步

我们首先创建一个目录用作我们编写C程序的目录,我这里的目录名称是my_code。
打开这个目录之后,我们首先需要创建CMakeLists.txt文件。点击按按钮进行文件的创建
在这里插入图片描述
文件内容

# cmake不能低于该版本
cmake_minimum_required(VERSION 3.0.0)
project(main VERSION 0.1.0 LANGUAGES C)
# 生成可执行文件main,后面的为所依赖的文件
add_executable(main list/main.c list/demo.c)set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
# 设置编译器 我这里用到的是交叉编译
set(CMAKE_C_COMPILER "/opt/riscv64-linux-x86_64-20210512/bin/riscv64-unknown-linux-gnu-gcc") 

ctrl+shift+p打开配置 搜索 cmake: 快速入门在这里插入图片描述
会让你选择编译器,根据自己的需求进行选择我这里选择的是riscv-unknown-linux-gnu
在这里插入图片描述
然后会生成build目录
在这里插入图片描述

第五步

编写C程序代码。
main.c

#include <stdio.h>
#include "demo.h"
int main(int argc, char **argv)
{printf("Hello, main!\n");demoPrint();return 1;
}

demo.c

#include "demo.h"
#include <stdio.h>
void demoPrint()
{printf("Hello demoPrint\n");
}

demo.h

void demoPrint();

第六步

点击终端->配置默认生成任务
根据需求进行选择,我这里选择的是第一个。默认生成一个tasks.json文件。
在这里插入图片描述
修改tasks.json文件。
文件内容

{"version": "2.0.0","options": {"cwd": "${workspaceRoot}/build" //指定命令执行所在路径},"tasks": [{"label": "cmake","type": "shell","command": "cmake","args": [".."]},{"label": "make","command": "make","args": [],"group": {"kind": "build","isDefault": true},"dependsOn": ["cmake"] //指定,在执行make之前,需先执行cmake}]
}

第七步

终端->运行生成任务
执行成功。
在这里插入图片描述
build目录下会生成一些文件,自动生成了makefile文件,执行文件也在这个目录中。
在这里插入图片描述

第八步

使用工具将main执行文件传到单片机上并执行。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SAP2000】在框架结构中应用分布式面板荷载Applying Distributed Panel Loads to Frame Structures

在框架结构中应用分布式面板荷载 Applying Distributed Panel Loads to Frame Structures 使用"Uniform to Frame"选项,可以简单地将荷载用于更多样化的情况。 With the “Uniform to Frame” option, loads can be easily used for a greater diversity of situat…

机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言

机器人寻路算法双向A*&#xff08;Bidirectional A*&#xff09;算法的实现C、Python、Matlab语言 最近好久没更新&#xff0c;在搞华为的软件挑战赛&#xff08;软挑&#xff09;&#xff0c;好卷只能说。去年还能混进32强&#xff0c;今年就比较迷糊了&#xff0c;这东西对我…

【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案

政策背景 国家部委 ※2017年5月3日国务院安委会召开电气火灾综合治理工作视频会议&#xff0c;决定在全国范围内组织开展为期3年的电气火灾综合治理工作。 公安部领导 ※公安部副部长李伟强调&#xff1a;向科技要战斗力&#xff0c;加快推进“智慧消防”建设不断提升火灾防控…

夜莺浏览日志、filebeat采集日志(四)

文章目录 一、elasticsearch二、filebeat三、日志分析 一、elasticsearch docker启动 docker run -d -p 9200:9200 -p 9300:9300 --restartalways -e ES_JAVA_OPTS"-Xms512m -Xmx512m" \ -e discovery.typesingle-node -e xpack.security.enabledtrue -e ELASTIC_P…

01 | 深入理解 Swoole 的底层加载原理

首发原文链接&#xff1a;深入理解 Swoole 的底层加载原理 PHP 扩展加载 我们从 php-src/sapi/cli/php_cli.c:1159 文件的入口函数 int main(int argc, char *argv[]) 开始分析。 大家可以先看下面这张图&#xff0c;描述了整个关键函数的加载、调用流程。从模块的初始化&…

C++初学者:像C#一样优雅写程序

C语言的强大&#xff0c;在于自由自在&#xff0c;你可以随便怎么写程序&#xff0c;不讲格式&#xff0c;可以很整齐&#xff0c;也可以鬼画符&#xff0c;只要能运行就可以了&#xff0c;程序员可以自由发挥。 如图&#xff1a; 国际C语言大赛中的代码 图2 C的语言更强大&…

Django auth模块

【一】命令行创建用户 【1】语法 python manage.py createsuper【2】示例 用户名 默认是是电脑名称 邮箱 可以填也可以不填 密码 terminal中&#xff1a;输入密码不显示出来manage.py中&#xff1a;明文输入输入密码太简单会提示 Username (leave blank to use administra…

【爬虫基础】第6讲 opener的使用

在爬虫中&#xff0c;opener是一个用来发送HTTP请求的对象。它可以用来模拟浏览器发送请求&#xff0c;包括设置请求头、处理Cookie等操作。使用opener可以实现一些高级功能&#xff0c;如模拟登录、处理验证码等。 方法1&#xff1a; from urllib.request import Request,bu…

自动驾驶传感器:惯性导航IMU原理

自动驾驶传感器&#xff1a;惯性导航IMU原理 附赠自动驾驶学习资料和量产经验&#xff1a;链接 组合导航里包含了GNSS卫星导航模块与IMU惯性导航模块&#xff0c;前一篇文章写了GNSS模块&#xff0c;本章写IMU惯导&#xff0c;也是本系列最后一篇文章。 1. 惯性测量单元&…

python学习13:python中的字符串格式化

python中的字符串格式化另外一种方式 我们前面是使用的%d,%f,%s占位符来实现字符串的格式化的&#xff1b;这次我们通过f"{}"来快速实现格式化&#xff0c;代码示例如下&#xff1a;

vue 预览excel文件的又一伟大实践 —— vue-office

实际上&#xff0c;预览excel这个功能&#xff0c;我之前已经写过一个文章了。如下&#xff0c;使用的是 luckysheet/luckyExcel 实现的。 vue 实现在线预览Excel-LuckyExcel/LuckySheet实现方案_excel在线预览的方案-CSDN博客 但是最近客户使用发现一个bug&#xff0c;就是某…

WPF —— DockPanel、ProgressBar 控件详解

ProgressBar 控件详解 1Progress bar简介 ProgressBar&#xff1a;进度条控件。 WPF带有一个方便的控件用于显示进度&#xff0c;称ProgressBar。它的工作原理就是设置最小值和最大值然后通过递增一个值&#xff0c;这样就可以直观的显示当前进度情况。 2 Progress bar常用的…