error: ‘QSerialPort‘ file not found #include <QtSerialPort>

前言:

在参考了寒冰诺颖的博客后发现问题还是不能解决,且网上解决’QSerialPort’ file not found这个问题的方法都是如此。下面说说我的解决方法

解决方法:

1.用qtchooser工具修改默认Qt版本号:

在终端输入命令查看qt版本号:

qmake -v

我发现默认的是qt4的版本,而我下载的是QT 5.12.9.
这就解释是为什么找不到QSerialPort,因为QSerialPort在5.1版本后成为qt的一部分,不然的话要手动添加QSerialPort。

执行下列代码添加qt5.12.9

qtchooser -install qt5.12.9 /opt/qt-5.12.9-arm/bin/qmake

查看是否添加成功

qtchooser -l

在这里插入图片描述
成功发现qt5.12.9在其中。

2.在Qt creator中选择qt5.12.9

在工具中选择构建和运行- >构建套件(Kit)- >手动设置->桌面(默认)->qt版本

在qt版本处选择QT 5.12.9

在这里插入图片描述

### 问题分析 在VSCode中配置OpenCV进行C++开发时,出现`fatal error: opencv2/gapi.hpp: No such file or directory`错误,表明编译器无法找到指定的头文件。这通常与以下原因相关: - OpenCV未正确安装或未包含所需的模块。 - VSCode的编译环境未正确配置路径。 - CMake未正确生成OpenCV库,特别是G-API模块[^1]。 --- ### 解决方案 #### 1. 确保OpenCV源码完整且正确编译 如果使用的是预编译版本的OpenCV,可能缺少某些模块(如G-API)。建议从OpenCV官方仓库下载源码,并通过CMake进行自定义编译[^3]。 **步骤说明:** - 下载OpenCV源码并解压。 - 使用CMake-GUI工具配置OpenCV: - 设置源码路径和构建路径。 - 启用`BUILD_opencv_gapi`选项以确保生成G-API相关的头文件和库文件。 - 配置完成后生成Visual Studio项目或Makefile。 - 编译生成的项目或执行Make命令,确保所有模块成功编译。 --- #### 2. 配置VSCode的C++开发环境 在VSCode中,需要正确设置`tasks.json`、`launch.json`和`c_cpp_properties.json`文件,以便编译器能够找到OpenCV的头文件和库文件。 **配置示例:** ##### `c_cpp_properties.json` 此文件用于指定头文件路径,确保编译器能找到OpenCV的头文件。 ```json { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "D:/opencv/build/include" // 替换为实际的OpenCV头文件路径 ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "C:/MinGW/bin/g++.exe", // 替换为实际的编译器路径 "cStandard": "c17", "cppStandard": "c++17" } ], "version": 4 } ``` ##### `tasks.json` 此文件用于定义编译任务。 ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe", "-ID:/opencv/build/include", // 替换为实际的头文件路径 "-LD:/opencv/build/x64/vc15/lib", // 替换为实际的库文件路径 "-lopencv_core455", // 替换为实际的库名称 "-lopencv_imgproc455", "-lopencv_highgui455", "-lopencv_gapi455" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] } ``` ##### `launch.json` 此文件用于定义调试配置。 ```json { "version": "0.2.0", "configurations": [ { "name": "C++ Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/MinGW/bin/gdb.exe", // 替换为实际的GDB路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] } ``` --- #### 3. 测试代码 完成上述配置后,可以运行以下测试代码验证环境是否正常工作。 ```cpp #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/gapi.hpp> using namespace cv; using namespace std; int main(int argc, char** argv) { cout << "OpenCV Version: " << CV_VERSION << endl; Mat src = imread("./src/model_optimize.jpg"); if (src.empty()) { cout << "Image not found!" << endl; return -1; } resize(src, src, Size(500, 800)); imwrite("./test.jpg", src); return 0; } ``` --- ### 注意事项 - 确保OpenCV的头文件路径和库文件路径正确无误。 - 如果使用的是MinGW编译器,需确保其路径已添加到系统环境变量中。 - 如果仍遇到问题,可以尝试重新编译OpenCV源码,确保所有依赖项均已正确安装。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值