这个错误提示是说在编译过程中出现了重复定义 key_map 的情况,具体来说是在 moc_mythread.omythread.o 两个目标文件中都定义了 key_map,导致链接时出错。

解决方法是将 key_map 的定义放在头文件中改为声明,在源文件中进行定义。头文件中的代码应该改为:

extern std::map<int, QString> key_map;

然后在源文件中定义 key_map

std::map<int, QString> lanrenAPI::key_map = { // ... };

这样做就可以避免多个目标文件都定义了 key_map 导致链接错误的问题。

头文件#ifndef LANRENAPI_H#define LANRENAPI_H#include windowsh#include winuserh#include hidusageh#includeQString#include ctime#include QStringList#include map#includevectorusing namespace std; 定义一个函数指针类型t

原文地址: https://www.cveoy.top/t/topic/ckTC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录