visual-studio-2010 - VS2010中的Opencv2.1应用程序构建

标签 visual-studio-2010 opencv

当使用Mutithreaded Debug Dll选项进行代码生成属性时,我有一个openCv应用程序可以构建并运行良好。但是,我想在任何计算机上运行该应用程序,但是,在多线程 Debug模式下构建失败,给出了LNK 2005错误,例如:

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in libcpmtd.lib(xlock.obj)

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in libcpmtd.lib(xlock.obj)

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) already defined in libcpmtd.lib(stdthrow.obj)

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) already defined in opencv2.obj

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) already defined in LIBCMTD.lib(stdexcpt.obj)

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) already defined in opencv2.obj

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __invalid_parameter already defined in LIBCMTD.lib(invarg.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: __CrtDbgReportW already defined in LIBCMTD.lib(dbgrptw.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) already defined in LIBCMTD.lib(stdexcpt.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined in LIBCMTD.lib(stdexcpt.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fclose already defined in LIBCMTD.lib(fclose.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fprintf already defined in LIBCMTD.lib(fprintf.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _fopen already defined in LIBCMTD.lib(fopen.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _memmove already defined in LIBCMTD.lib(memmove.obj)

1>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgfree.obj)



任何建议,将不胜感激。我真的被困在这里,较小的程序没有问题

谢谢

PS我也使用cvBlobslib中的函数和LIBSVM中的代码,但这应该不是问题

最佳答案

如果更改为使用/MT/MTd,则还需要使用这些设置来编译所有依赖库。

如果不是这种情况,则这些依赖项需要链接到动态CRT,并且您的项目正在尝试链接到静态CRT,从而导致您看到“已定义”错误。

关于visual-studio-2010 - VS2010中的Opencv2.1应用程序构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10345900/

相关文章:

python - OpenCV 安装停留在 [ 99%] Built target opencv_perf_stitching 没有错误

python - opencv和picamera(V2)在高分辨率下出现白/蓝平衡错误

.net - 对声明为友元的类进行单元测试(内部)

windows - 下拉组合框时的工具提示

c++ - 无法打开 .cu 中的包含文件

java - 红框交通标志的颜色阈值

c++ - OpenCV 图像处理——C++ vs C vs Python

visual-studio-2010 - 使用 Visual Studio 2010 构建 x64 WIX 项目?

c# - ReadLine() 与 Read() 有效获取 CR 和 LF?

python - 使用opencv和Python消除图像模糊