0

0

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

星夢妙者

星夢妙者

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

|

437人浏览过

|

来源于php中文网

原创

要搭建嵌入式#%#$#%@%@%$#%$#%#%#$%@_e206a54e97690c++e50cc872dd70ee896开发的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
文件配置正确,包含了正确的头文件路径和编译器路径。

ImgGood
ImgGood

免费在线AI照片编辑器

下载

解决方案:

  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开发环境,开始你的嵌入式之旅!

相关专题

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

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

411

2023.08.07

json是什么
json是什么

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

533

2023.08.23

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

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

309

2023.10.13

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

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

74

2025.09.10

eclipse教程
eclipse教程

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

166

2023.06.14

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

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

791

2023.07.24

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

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

586

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等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

163

2024.02.23

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

热门下载

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

精品课程

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

共34课时 | 2.5万人学习

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

共98课时 | 7.4万人学习

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

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