错误 11 错误 LNK2005:已在 MyForm.obj 中定义"class cv::Mat imageOutput" (?imageOutput@@3VMat@cv@@A)

Error 11 error LNK2005: "class cv::Mat imageOutput" (?imageOutput@@3VMat@cv@@A) already defined in MyForm.obj

本文关键字:错误 Mat imageOutput imageOutput@@3VMat@cv@@A cv 定义 LNK2005 已在 MyForm obj class      更新时间:2023-10-16

我对C++/CLI 很陌生。我已经用"普通"C++开发了我的代码,现在我只是试图围绕它包装一个 GUI。

我的 GUI 由两种形式组成。主要的(Form1)有我的大部分OpenCV代码,并且在我尝试在Form2中创建cv::Mat对象之前工作和编译良好。编译链接器时,会出现以下错误:

错误

11 错误 LNK2005:"类 cv::Mat ProgramWrapper::imageOutput" (?imageOutput@ProgramWrapper@@3VMat@cv@@A) 已在 MyForm.obj 中定义

错误

12 错误 LNK1169:找到一个或多个乘法定义的符号

有解决方法吗?

对于任何正在寻找答案并且没有运气的人,我终于找到了一个适合我的解决方案。

只需将每个表单中的变量放在无名称命名空间中即可。例如:

namespace {
cv::Mat image
}