Serial-Studio 上位机编译全过程深度讲解,解决串口数据可视化工具
Windows环境下编译Serial-Studio
Serial-Studio是一个开源的串口数据可视化工具,广泛应用于物联网、嵌入式系统调试和数据分析等领域。从源代码编译Serial-Studio可以让您获取最新功能、进行自定义修改,或在特定环境下部署。本指南将提供在Windows操作系统下从零开始编译Serial-Studio的详细步骤,并对每一个命令的含义和作用进行深入剖析。
1. 编译环境准备
在开始编译之前,我们需要确保系统中安装了所有必需的软件和工具。
1.1 安装 Chocolatey (Windows 包管理器)
Chocolatey 是一个强大的Windows命令行包管理器,它能极大地简化软件的安装、更新和卸载过程。我们使用它来安装 Git 和其他可能的依赖。
打开 PowerShell (管理员权限):
- 在Windows搜索栏中输入 "PowerShell",然后右键点击 "Windows PowerShell" 或 "终端",选择 "以管理员身份运行"。这是因为安装系统级的包管理器需要提升权限。
设置执行策略:
PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force
- 命令含义
Set-ExecutionPolicy: 这是 PowerShell 的一个核心 cmdlet(命令),用于设置脚本的执行策略。Windows 默认的安全设置可能不允许直接运行从互联网下载的脚本,以防止恶意软件。Bypass: 这是一种执行策略,它会绕过所有安全检查,允许脚本执行,而不会有任何警告或提示。-Scope Process: 指定该策略只在当前 PowerShell 进程中生效。这意味着当您关闭当前的 PowerShell 窗口后,系统会恢复到之前的执行策略,不会对系统范围造成永久性改变。-Force: 强制应用此策略,即使有警告或确认提示也会自动接受。
- 必要性: Chocolatey 的安装脚本是从互联网下载的,需要这个命令来暂时允许 PowerShell 执行这个脚本,否则安装会失败。
- 命令含义
安装 Chocolatey:
PowerShell
irm https://community.chocolatey.org/install.ps1 | iex
命令含义
irm(Invoke-RestMethod): 这是一个 PowerShell cmdlet,用于向 Web 服务发送 HTTP 请求并获取响应。在这里,它用于从https://community.chocolatey.org/install.ps1下载 Chocolatey 的安装脚本内容。|: 这是 PowerShell 的管道操作符。它将irm命令的输出(即安装脚本的内容)传递给下一个命令。iex(Invoke-Expression): 这是一个 PowerShell cmdlet,它会将一个字符串作为命令或表达式来执行。在这里,它接收管道传递过来的安装脚本内容,并将其作为 PowerShell 脚本执行。
必要性: 这是 Chocolatey 官方推荐的安装方法,通过下载并执行其安装脚本来完成安装。

验证安装:
PowerShell
choco -v
- 命令含义
choco: 这是 Chocolatey 的主命令。-v: 这是choco命令的一个选项,用于显示 Chocolatey 的当前版本号。
- 必要性: 运行此命令可以确认 Chocolatey 是否成功安装,并检查其版本。如果显示版本号,则说明 Chocolatey 已准备就绪。
- 命令含义
1.2 安装 Git (版本控制工具)
Git 是一个分布式版本控制系统,Serial-Studio 的源代码托管在 GitHub 上,我们需要使用 Git 将其克隆(下载)到本地。
使用 Chocolatey 安装 Git
choco install git -y
命令含义
choco install: 这是 Chocolatey 的子命令,用于安装指定的软件包。git: 这是要安装的软件包的名称,对应于 Git 版本控制系统。-y: 这个选项表示“是”(Yes),它会自动确认所有安装提示,无需手动输入y。这在自动化脚本中非常有用。
必要性: Git 是下载项目源代码的唯一途径,Chocolatey 提供了一种简便的安装方式。

1.3 下载项目源代码
现在,我们可以使用 Git 将 Serial-Studio 的最新源代码下载到您的本地机器。
切换驱动器:
Bash
cd f:
- 命令含义
cd: 这是“change directory”(改变目录)的缩写。f:: 指定要切换到的目标驱动器。这里选择F:盘,您可以根据自己的实际情况选择其他驱动器。
- 必要性: 将项目源代码存放在非系统盘(如
C:盘)是一个良好的习惯,可以避免权限问题,并且通常不会影响系统性能。
- 命令含义
创建项目目录:
mkdir project
- 命令含义
mkdir: 这是“make directory”(创建目录)的缩写。project: 这是您要创建的新目录的名称。
- 必要性: 创建一个专门的目录来存放所有开发项目,可以保持文件系统的整洁和组织性。
- 命令含义
进入项目目录:
cd project
- 命令含义
cd project: 切换到刚刚创建的project目录中。
- 必要性:
git clone命令会将仓库克隆到当前目录下,因此需要先进入目标目录。
- 命令含义
克隆源代码:
git clone https://github.com/Serial-Studio/Serial-Studio.git
命令含义
git clone: 这是 Git 的一个核心命令,用于从远程仓库(GitHub)复制一个完整的版本库到本地。它会下载所有文件和项目的完整历史记录。https://github.com/Serial-Studio/Serial-Studio.git: 这是 Serial-Studio 项目在 GitHub 上的 HTTPS 仓库地址。
必要性: 这是获取 Serial-Studio 源代码的直接方式。执行此命令后,源代码将被下载到
F:\project\Serial-Studio目录中。
1.4 安装 Qt (跨平台开发框架)
Qt 是一个流行的跨平台C++图形用户界面(GUI)应用程序开发框架,Serial-Studio 是基于 Qt 开发的。因此,编译 Serial-Studio 必须安装 Qt。
下载 Qt 安装程序:
访问 Qt 官方下载地址:
https://www.qt.io/download-qt-installer
必要性: Qt 官方安装程序是获取 Qt 框架的推荐方式。
运行安装程序并选择组件:
下载后运行安装程序。
- 重要提示和必要性
- 在安装过程中,会看到一个组件选择界面。务必选择以下关键组件:
Qt 6.8.3
MinGW
MSVC
CMake
Ninja









1.5 安装 Visual Studio (C++ 开发环境)
尽管我们使用 MinGW 编译器,但 Visual Studio 提供了一些必要的 C++ 构建工具和库,这些可能在编译过程中被 CMake 发现和使用。
下载 Visual Studio 安装程序:
- 访问 Visual Studio 官方网站(例如 Visual Studio 2022 Community)。
- 必要性: 某些 C++ 项目可能依赖于 Visual Studio 提供的特定头文件或库,即使最终使用的是 MinGW 编译器。
运行安装程序并选择工作负载:
在安装过程中,务必选择并安装
"使用 C++ 的桌面开发 (Desktop development with C++)"
必要性: 这个工作负载包含了编译 C++ 应用程序所需的核心编译器工具链、库文件、调试器和构建工具。它是确保 C++ 项目顺利编译的关键。

2. 配置环境变量
环境变量是操作系统中用来指定系统运行环境的一些参数。正确配置 PATH 环境变量,可以让系统在执行命令时自动找到对应的可执行文件,而无需输入完整的路径。
根据您的实际安装路径,将以下路径添加到系统环境变量 Path 中。在“系统属性”->“环境变量”中完成。
F:\Qt\6.8.3\mingw_64\bin
: 这是 Qt 6.8.3 版本下 MinGW 64 位编译器的可执行文件目录。其中包含 qmake等 Qt 工具以及 MinGW 的 bin目录。
F:\Qt\6.8.3\msvc2022_64\bin
: 这是 Qt 6.8.3 版本下 MSVC 2022 64 位编译器的可执行文件目录。如果使用 MSVC 编译器,则此路径很重要。
F:\Qt\6.8.3\android_x86_64\bin
: 这是 Qt 6.8.3 版本下 Android x86_64 架构的可执行文件目录。虽然对于桌面应用编译并非必需,但如果进行 Android 开发,添加此路径会很方便。
F:\Qt\Tools\mingw1310_64\bin
: 这是 MinGW 13.1.0 64 位编译器的独立安装目录(如果 Qt 安装器单独提供了这个工具)。这个路径包含 gcc.exe和g++.exe 等编译器核心可执行文件。
F:\Qt\Tools\CMake_64\bin
: 这是 CMake 工具的安装目录。添加此路径后,可以在任何命令行位置直接运行 cmake命令。
F:\Qt\Tools\Ninja
: 这是 Ninja 构建工具的安装目录。添加此路径后,可以直接运行 ninja命令。
F:\Qt\Tools\QtInstallerFramework\4.9\bin
: 这是 Qt 安装框架工具的目录,可能包含一些用于打包或部署的工具。
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64
: 这是 Visual Studio 2022 Community 版中 MSVC C++ 编译器和相关工具链的路径。路径中的版本号(如 14.29.30133)可能因 Visual Studio 更新而有所不同,请务必根据实际的安装路径进行调整。

重要提示:
- 添加或修改环境变量后,请关闭所有已打开的命令行或 PowerShell 窗口,然后重新打开。这是因为环境变量是在进程启动时加载的,现有进程不会自动感知到新的环境变量。
3. 执行编译
所有必要的工具和环境都已准备就绪,现在可以开始编译 Serial-Studio。
进入编译目录:
Bash
cd F:\project\Serial-Studio-master\Serial-Studio-master\build
命令含义
cd: 切换目录。F:\project\Serial-Studio-master\Serial-Studio-master\build: 这是 Serial-Studio 项目中用于存放构建文件和执行编译命令的目录。通常,一个项目会将源代码放在根目录,而将编译过程中产生的中间文件和最终的可执行文件放在一个独立的build目录中,以保持源代码的干净。
必要性: CMake 和 Ninja 都会在当前目录下生成或查找构建文件,因此必须先进入正确的
build目录。
执行 CMake 配置:
cmake -G "Ninja" -DCMAKE_MAKE_PROGRAM=F:\Qt\Tools\Ninja\ninja.exe -DCMAKE_C_COMPILER=F:\Qt\Tools\mingw1310_64\bin\gcc.exe -DCMAKE_CXX_COMPILER=F:\Qt\Tools\mingw1310_64\bin\g++.exe -DCMAKE_PREFIX_PATH=F:\Qt\6.8.3\mingw_64 ..
命令含义 如下:
cmake: 这是一个跨平台的构建系统生成器。它不直接编译代码,而是读取项目根目录下的CMakeLists.txt文件(项目构建规则),然后根据您指定的生成器来生成特定构建系统(如 Ninja、Visual Studio 解决方案、Makefile 等)所需的文件。-G "Ninja": 指定 CMake 使用 "Ninja" 作为构建系统生成器。这意味着 CMake 会生成build.ninja文件以及其他 Ninja 所需的配置。Ninja 是一个轻量级、专注于速度的构建系统。-DCMAKE_MAKE_PROGRAM=F:\Qt\Tools\Ninja\ninja.exe: 这是一个 CMake 变量设置。它明确告诉 CMakeninja可执行文件的完整路径。这在ninja没有添加到系统 PATH 或系统中有多个ninja版本时尤其重要,确保 CMake 找到正确的构建工具。-DCMAKE_C_COMPILER=F:\Qt\Tools\mingw1310_64\bin\gcc.exe: 这是一个 CMake 变量设置。它明确指定用于编译 C 语言源代码的编译器路径。这里指向的是 MinGW 的gcc.exe。这确保 CMake 在配置项目时,使用您指定的 MinGW C 编译器。-DCMAKE_CXX_COMPILER=F:\Qt\Tools\mingw1310_64\bin\g++.exe: 这是一个 CMake 变量设置。它明确指定用于编译 C++ 语言源代码的编译器路径。这里指向的是 MinGW 的g++.exe。这确保 CMake 在配置项目时,使用您指定的 MinGW C++ 编译器。-DCMAKE_PREFIX_PATH=F:\Qt\6.8.3\mingw_64: 这是一个 CMake 变量设置。它告诉 CMake 在哪里查找外部库和包。在这里,它指向 Qt 库的安装路径(特别是 MinGW 编译器的 Qt 版本)。CMake 会在此路径下搜索 Qt 的配置信息(如Qt6Config.cmake),从而找到所有必需的 Qt 模块、头文件和库文件,以便正确地链接 Serial-Studio 对 Qt 的依赖。..: 这表示当前目录的父目录。在build目录中执行cmake ..意味着 CMake 会在build目录的上一级目录(即F:\project\Serial-Studio-master\Serial-Studio-master,也就是 Serial-Studio 的源代码根目录)中查找CMakeLists.txt文件,这个文件定义了整个项目的构建规则。必要性: CMake 配置是编译的第一步。它分析项目的依赖关系、目标平台和编译器,并生成后续构建工具(Ninja)所需的指令,确保所有源文件都能被正确地编译和链接。
执行 Ninja 编译:
Bash
ninja
命令含义
ninja: 这是 Ninja 构建工具的主命令。在 CMake 成功生成build.ninja文件后,ninja命令会读取这些文件,并根据其中的指令执行实际的编译操作。它会调用gcc/g++来编译各个源文件,然后调用链接器将编译后的对象文件合并成最终的可执行程序。
必要性:
ninja是执行实际编译过程的命令。它负责并行化编译任务、管理文件依赖关系,并最终生成 Serial-Studio 的可执行文件。
4. 编译成功
当 ninja 命令执行完毕,并且命令行中没有显示任何致命错误信息,那么恭喜,Serial-Studio 已经成功编译完成!
编译生成的可执行文件通常位于您 build 目录的某个子目录中,我的在F:\project\Serial-Studio-master\Serial-Studio-master\build\app中。可以在这个目录中找到 Serial-Studio.exe并运行它。

双击 Serial-Studio.exe并运行结果

通过本指南的详细步骤和命令解析,希望能帮助您顺利完成 Serial-Studio 的编译过程,并更深入地理解其背后的构建机制。
5.异常处理
5.1 缺少QT组件
在安装QT时有些组件未安装,导致编译时失败报错

解决方法: 在开始菜单下找到Qt Maintenance Tool这个工具打开后即可添加需要则组件

在Qt维护工具中选择添加或移除组件的选项

搜索缺失的组件名称,勾选所对应版本需要安装的组件,点击下一步进行安装

5.2 运行时缺失dll文件
编译完成后在运行时缺失文件,大部分的情况时环境变量的配置问题,添加环境变量即可解决,如果无法解决可以采用方式二,便用windeployqt.exe部署工具将运行所需的文件复制到项目文件夹下,此两种方式能解决大多数的运行失败问题

解决方案一: 添加环境变量

解决方案二: 使用windeployqt.exe部等工具复制文件
- windeployqt.exe;这是 Qt提供的部署工具。它会分析您指定的 Qt应用程序的可执行文件(Serlal-studio.exe),找出它所依赖的所有 QtDLLs、插件、翻译
文件等。 - windeploygt 会自动将所有必要的 Qt DLLs(包括 Qt6Core.dl, Qt6Gui.dl, Qt6widgets.dl, Qt6Bluetooth.d 等)、所需的插件目录(如 platforms,sqldrivers, bearer 等)和翻译文件复制到 Serial-studio.exe 所在的目录(F:projectiSerial-Studio\build\app).
cd F:\Qt16.8.3\mingw_64\bin
windeployqt.exe F:\project\serial-studio\build\appiserial-studio.exe

全文完,请大家专注我们的B站视频号和微信公众号,如果对编译过程有疑问或者想与大家一起讨论开源软件的定制化,请大家加入我们的QQ群畅所欲言。
Serial-Studio 上位机编译全过程深度讲解,解决串口数据可视化工具的更多相关文章
- 2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9490616.html 本文用的是VS2013MFC写串口数据接收: 第一步:首先建立一个MFC ...
- 案例:中科院光机所应用大数据可视化工具-LightningChart | 见证高性能图表
中国科学院上海光学精密机械研究所 中国现代光学和激光科学领域领先研究所 中国科学院上海光学精密机械研究所(简称中科院上海光机所)是我国建立最早.规模最大的激光专业研究所,成立于1964年,现已发展成为 ...
- caffe深度学习网络(.prototxt)在线可视化工具:Netscope Editor
http://ethereon.github.io/netscope/#/editor 网址:http://ethereon.github.io/netscope/#/editor 将.prototx ...
- 用WindowsAppSDK(WASDK)优雅的开发上位机应用
C#开发上位机应用的一些选择 如果你不想看介绍,可以直接跳到优雅开发示例那里. 1. WASDK(WinUI 3) Windows 应用 SDK 是一组新的开发人员组件和工具,它们代表着 Window ...
- 家居环境监測系统设计(PC上位机版)(手机APP版待定)
下面是我的毕业设计:家居环境监測系统设计(PC上位机临时版.手机app版待定).本系统採用STC12C5A60S2单片机.结合传感器.分别对空气湿度.空气温度.气压.海拔.进水温度.出水温度.光照强度 ...
- 开源串口 Ymodem 上位机软件
概述 上位机使用Qt开发,计划整合多个工具为一体,用作以后的调试工具. 当前完成功能: 1.串口调试 支持hex和ascii 码发送,接受. 支持自动添加回车换行. 支持定时发送,最短间隔100ms, ...
- 我编写的EEPROM 上位机软件
进入模式: 上位机发送 消息 上位机EEPROM 按下进入模式 消息的ID号是:0x08111111 数据是: 00 01 ff 00 00 00 00 00 上位机显示 运行状态 :为进入模式 当我 ...
- C# 简易的串口监视上位机实现
实现上位机和下位机之间的通信,通常使用的是串口通信,接下来实现一个通过上位机和串口调试助手来完成串口通信测试. 首先创建一个WInfrom窗体应用工程文件,创建过程可参考https://www.cnb ...
- 串口数据监视 Serial Port Monitor
串口数据监视工具 Serial Port Monitor可以在其它应用读写串口时监视串口数据, 很好用,但只有15天试用期.
- ROS常用库(二) Serial库(单片机和上位机串口通讯)
比如我们做了个单片机,在win里面用串口调试助手接收和下发数据,那么在ubuntu里用ros怎么实现?换个说法,怎么实现上位机和下位机的通讯? 首先,用python自带的库就可以实现这个功能. 安装p ...
随机推荐
- 启动Eclipse时报错如何解决?
启动Eclipse出现弹框,弹框报错内容如下: A Java Runtime Enviroment(JRE)or Java Development Kit(JDK) must be available ...
- Flink学习(三) 批流版本的wordcount JAVA版本
Flink 开发环境通常来讲,任何一门大数据框架在实际生产环境中都是以集群的形式运行,而我们调试代码大多数会在本地搭建一个模板工程,Flink 也不例外. Flink 一个以 Java 及 Scala ...
- MyBatis与其使用方法讲解
ORM 在讲解Mybatis之前,我们需了解一个概念ORM(Object-Relational Mapping)对象关系映射,其是数据库与Java对象进行映射的一个技术.通过使用ORM,我们可以不用编 ...
- go 逐行读取文件
前言 文件 I/O,特别是对文件的读写是编程语言中重要的功能.通常,我们需要逐行读取文件. GO 提供了 bufio 软件包,实现了有缓冲的 I/O.它包装一个 io.Reader 或 io.Writ ...
- go 遍历修改切片数据
package main import "fmt" type good struct { id int64 sum int64 } func main() { good1 := g ...
- 使用Docker部署服务
一.Docker概念 1.操作系统层面的虚拟化技术 2.隔离的进程独立于宿主和其它的隔离的进程 - 容器 3.GO语言开发 4.特点:高效的利用系统资源:快速的启动时间:一致的运行环境:持续交付和部署 ...
- 张高兴的大模型开发实战:(三)使用 LangGraph 为对话添加历史记录
目录 基础概念 环境搭建与配置 将对话历史存储至内存 将对话历史存储至 PostgreSQL 在构建聊天机器人时,对话历史记录是提升用户体验的核心功能之一,用户希望机器人能够记住之前的对话内容,从而避 ...
- verilog实现32位有符号流水乘法器
verilog实现32位有符号流水乘法器 1.4bit乘法流程 1.无符号X无符号二进制乘法器 以下为4bit乘法器流程(2X6) 0 0 0 0 0 0 1 0 (2) X 0 0 0 0 0 1 ...
- Hive SQL实现近N周的数据统计查询
文/朱季谦 先前遇到过一个需求,需要基于HIVE统计近N周范围的数据,例如,统计近7周范围的数据指标. 需要用HIVE SQL去实现该功能,而HIVE SQL并没有PostgreSQL那样例如通过函数 ...
- AR 智能生态鱼缸组态远控平台 | 图扑软件
在工业 4.0 和物联网技术的推动下,万物互联正重塑行业管理模式.组态远控系统作为高效管控的核心,打破了设备孤立状态,实现数据实时交互.以智能生态鱼缸为例,图扑软件低代码数字孪生平台通过集成前沿技术, ...