0

0

VSCode配置嵌入式Linux开发 完整VSCode搭建C环境教程

星夢妙者

星夢妙者

发布时间:2025-08-12 22:11:01

|

437人浏览过

|

来源于php中文网

原创

要搭建嵌入式linux开发的vscode c环境,首先安装vscode及c/c++扩展以获得基本编译调试能力;2. 安装适用于目标架构的交叉编译工具链,如树莓派使用arm-linux-gnueabihf-gcc;3. 配置tasks.json文件指定交叉编译器路径和编译参数,实现代码构建;4. 配置launch.json文件设置gdb远程调试,包括midebuggerpath和目标设备ip端口;5. 在嵌入式设备上启动gdbserver并监听指定端口,准备调试连接;6. 解决权限问题可通过chmod修改设备文件权限、sudo运行gdbserver或配置udev规则;7. 实现代码自动补全和语法检查需正确配置c_cpp_properties.json中的includepath和compilerpath,或安装clangd扩展提升智能感知;8. 使用remote development扩展可实现远程开发,通过remote-ssh连接设备并在远程安装vscode server;9. 用makefile管理复杂项目,编写编译规则并在tasks.json中调用make命令;10. 查看串口输出可安装serial monitor扩展并配置正确串口号和波特率。完整配置后即可高效进行嵌入式linux开发。

VSCode配置嵌入式Linux开发 完整VSCode搭建C环境教程

直接在VSCode里搞嵌入式Linux开发,听起来就挺酷的,对吧? 其实也没那么神秘,关键是把环境搭好。 这篇文章就来说说怎么完整搭建C环境,让你在VSCode里也能飞起来。

搭建嵌入式Linux开发的VSCode C环境。

为什么选择VSCode进行嵌入式Linux开发?

其实选择VSCode,很大程度上是因为它的轻量级和强大的插件生态。 你可以根据自己的需求安装各种插件,比如C/C++ 插件、远程开发插件等等,让你的开发效率嗖嗖地往上涨。 而且,VSCode的界面也比较友好,用起来很舒服。 当然,也有人喜欢用其他的IDE,比如Eclipse,但我觉得VSCode更适合我这种喜欢折腾的人。

解决方案:

  1. 安装VSCode和C/C++ 扩展: 这个不用多说,官网下载安装,然后在扩展商店搜索C/C++,安装。 装完之后,VSCode基本上就有了编译和调试C/C++代码的能力。

  2. 安装交叉编译工具链: 这是关键。 因为嵌入式Linux运行在不同的架构上(比如ARM),所以我们需要一个交叉编译工具链,在PC上编译出能在嵌入式设备上运行的代码。 这个工具链怎么安装,取决于你的嵌入式平台。 比如,如果是树莓派,你可以用

    apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
    来安装。 注意,
    arm-linux-gnueabihf
    这个部分要根据你的平台来修改。

  3. 配置VSCode的

    tasks.json
    文件: 这个文件告诉VSCode怎么编译你的代码。 在VSCode里按
    Ctrl+Shift+P
    ,输入
    Tasks: Configure Task
    ,选择
    Create tasks.json from template
    ,然后选择
    Others
    。 然后,编辑
    tasks.json
    文件,把里面的
    command
    改成你的交叉编译器的路径,比如:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "build",
            "command": "/usr/bin/arm-linux-gnueabihf-gcc", // 这里改成你的交叉编译器路径
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
  1. 配置VSCode的
    launch.json
    文件:
    这个文件告诉VSCode怎么调试你的代码。 同样,按
    Ctrl+Shift+P
    ,输入
    Debug: Open launch.json
    。 然后,编辑
    launch.json
    文件。 调试嵌入式Linux程序,通常需要用到GDB远程调试。 所以,你需要配置GDB的路径,以及目标设备的IP地址和端口号。 一个例子如下:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/arm-linux-gnueabihf-gdb", // 这里改成你的GDB路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "targetArchitecture": "arm",
            "miDebuggerServerAddress": "192.168.1.100:1234" // 这里改成你的目标设备的IP地址和端口号
        }
    ]
}
  1. 在嵌入式设备上启动GDB Server: 在你的嵌入式设备上,需要启动GDB Server,监听来自PC的调试请求。 你可以用
    gdbserver 192.168.1.100:1234 your_program
    来启动,其中
    192.168.1.100
    是你的PC的IP地址,
    1234
    是端口号,
    your_program
    是你要调试的程序。

如何解决VSCode调试嵌入式Linux程序时遇到的权限问题?

权限问题是嵌入式开发中经常遇到的。 比如,你可能没有权限访问某些设备文件,或者没有权限调试某些程序。 解决这个问题,通常需要修改文件权限,或者以root身份运行GDB Server。 但要注意,以root身份运行程序可能会带来安全风险,所以要谨慎操作。

解决方案:

  • 修改文件权限: 使用

    chmod
    命令修改文件权限。 比如,
    chmod 777 /dev/ttyUSB0
    可以给
    /dev/ttyUSB0
    这个设备文件赋予所有用户读写执行的权限。

  • 以root身份运行GDB Server: 使用

    sudo gdbserver 192.168.1.100:1234 your_program
    来以root身份运行GDB Server。

  • 配置udev规则: udev是一个Linux设备管理器,可以根据设备属性自动配置设备文件。 你可以通过配置udev规则,让特定的用户自动拥有特定设备的访问权限。

如何在VSCode中实现代码自动补全和语法检查?

代码自动补全和语法检查是提高开发效率的利器。 VSCode的C/C++ 扩展自带了这些功能,但需要正确配置。 确保你的

c_cpp_properties.json
文件配置正确,包含了正确的头文件路径和编译器路径。

Logome
Logome

AI驱动的Logo生成工具

下载

解决方案:

  1. 配置
    c_cpp_properties.json
    文件:
    这个文件告诉VSCode你的项目的头文件路径和编译器路径。 按
    Ctrl+Shift+P
    ,输入
    C/C++: Edit Configurations (JSON)
    ,可以打开这个文件。 然后,编辑这个文件,添加你的头文件路径和编译器路径。 一个例子如下:
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include",
                "/usr/include/arm-linux-gnueabihf" // 这里添加你的头文件路径
            ],
            "defines": [],
            "compilerPath": "/usr/bin/arm-linux-gnueabihf-gcc", // 这里改成你的交叉编译器路径
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-gcc-arm"
        }
    ],
    "version": 4
}
  1. 安装clangd扩展: clangd是一个C/C++语言服务器,可以提供更强大的代码自动补全和语法检查功能。 在VSCode的扩展商店搜索clangd,安装即可。

如何在VSCode中进行远程开发?

很多时候,我们的代码需要在远程的嵌入式设备上编译和运行。 VSCode的Remote Development 扩展可以让我们直接在远程设备上开发,就像在本地一样。

解决方案:

  1. 安装Remote Development 扩展: 在VSCode的扩展商店搜索Remote Development,安装即可。 这个扩展包含三个子扩展:Remote - SSH、Remote - Containers 和 Remote - WSL。 根据你的需求选择安装。

  2. 配置SSH连接: 使用Remote - SSH 扩展,可以通过SSH连接到远程设备。 点击VSCode左下角的绿色按钮,选择

    Remote-SSH: Connect to Host...
    ,然后输入你的远程设备的IP地址和用户名。

  3. 在远程设备上安装VSCode Server: 第一次连接到远程设备时,VSCode会自动在远程设备上安装VSCode Server。 这个Server负责在远程设备上运行代码,并将结果返回给本地的VSCode。

如何使用Makefile管理项目?

Makefile是一个自动化构建工具,可以简化编译过程。 对于复杂的嵌入式Linux项目,使用Makefile可以大大提高开发效率。

解决方案:

  1. 编写Makefile: Makefile定义了项目的编译规则。 你需要编写Makefile,指定源文件、头文件、编译器选项等等。 一个简单的Makefile例子如下:
CC = arm-linux-gnueabihf-gcc
CFLAGS = -g -Wall

TARGET = my_program
SOURCES = main.c

all: $(TARGET)

$(TARGET): $(SOURCES)
    $(CC) $(CFLAGS) -o $(TARGET) $(SOURCES)

clean:
    rm -f $(TARGET)
  1. 配置VSCode的
    tasks.json
    文件:
    修改
    tasks.json
    文件,让VSCode使用Makefile来编译项目。
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "make",
            "command": "make",
            "args": [],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

如何在VSCode中查看嵌入式设备的串口输出?

嵌入式设备的串口输出对于调试非常重要。 VSCode可以通过安装串口插件来查看串口输出。

解决方案:

  1. 安装Serial Monitor 扩展: 在VSCode的扩展商店搜索Serial Monitor,安装即可。

  2. 配置Serial Monitor: 配置Serial Monitor的串口号、波特率等参数。 点击VSCode底部的Serial Monitor图标,可以打开串口监视器。

配置嵌入式Linux开发环境确实需要一些耐心,但一旦配置好,开发效率就会大大提高。 希望这篇文章能帮助你顺利搭建VSCode的嵌入式Linux开发环境,开始你的嵌入式之旅!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

452

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

331

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

eclipse教程
eclipse教程

php中文网为大家带来eclipse教程合集,eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。php中文网还为大家带来eclipse的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

193

2023.06.14

eclipse怎么设置中文
eclipse怎么设置中文

eclipse设置中文的方法:除了设置界面为中文外,你还可以为Eclipse添加中文插件,以便更好地支持中文编程。例如,你可以安装EBNF插件来支持中文变量名,或安装Chinese Helper来提供中文帮助文档。本专题为大家提供eclipse设置中文相关的各种文章、以及下载和课程。

805

2023.07.24

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

620

2023.11.02

Eclipse版本号有哪些区别
Eclipse版本号有哪些区别

区别:1、Eclipse 3.x系列:Eclipse的早期版本,包括3.0、3.1、3.2等;2、Eclipse 4.x系列:Eclipse的最新版本,包括4.0、4.1、4.2等;3、Eclipse IDE for Java Developers等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

179

2024.02.23

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

19

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.7万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 8.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号