c++ - C++ 和 QT 线程外部变量不起作用
问题描述
我正在编写一个 C++ 程序,并且我正在将 QT 用于 GUI。我需要将数据从 QT 线程传递到另一个线程,所以我决定使用外部变量,但它不起作用。这是我的代码:
流缓冲区.h
#ifndef STREAM_BUFFER_H
#define STREAM_BUFFER_H
#include "opencv2/core.hpp"
extern cv::Mat frame_buffer;
#endif // STREAM_BUFFER_H
线程1.cpp
#include "stream_buffer.h"
//Some code
cv::Mat frame_buffer;
video_stream >> frame_buffer;
//other code
线程2.cpp
#include "stream_buffer.h
imshow("debug", frame_buffer);
在编译期间,我收到错误unresolved external symbol frame_buffer in function void run in Thread2.cpp
。如果我frame_buffer
也在 Thread2.cpp 中定义变量,它会编译,但它当然不起作用(因为它是一个局部变量,所以它不会从公共头文件中读取值)。
我怎么解决这个问题?谢谢
解决方案
推荐阅读
- apache-kafka - 是否有任何 api 或工具可以获取 kafka 主题中的摄取率
- clojure - 为什么我的端点没有在 Clojure 中使用 ring 传递标头/cookie 并按预期响应?
- f# - 如何修复 Giraffe API 返回的空对象通过 SqlDataProvider 从数据库中获取
- hadoop - 为什么我的 hadoop 无法理解 -chmod 命令?
- php - 在 Wordpress 中找不到 style.css
- android - 如何断开WiFi并连接到SSID和密码可用的wifi?
- linux - linux中数百万文件的重命名和更改目录结构
- sql-server - 如果它满足 CASE 中的条件,有没有办法从另一个表中选择一个名称
- botframework - 无法添加使用 AppStudio 构建的自定义团队选项卡
- javascript - 错误:`createNavigationContainer()` 已被删除。改用`createAppContainer()`