Skip to main content

Conflict between Kofax Mobile SDK and OpenCV

Article # 3035466 - Page views: 56


Customer is running into a conflict between Kofax (MobileSDK.framework) and OpenCV2.

It seems that the MobileSDK is embedding the OpenCV symbols, below is the error they are having:

duplicate symbol 'cv::Mat::push_back_(void const*)' in:
duplicate symbol 'cv::TLSDataContainer::gatherData(std::__1::vector<void*, std::__1::allocator<void*> >&) const' in:

They tried removing the duplicate object files, but it seems that the version of opencv that they use is not the same as the one used in MobileSDK, because the symbol is missing:

stderr: undef: __ZN7CvMatNDC1ERKN2cv3MatE
Undefined symbols for architecture x86_64:
"CvMatND::CvMatND(cv::Mat const&)", referenced from:
cv::write(cv::FileStorage&, cv::String const&, cv::Mat const&) in MobileSDK(persistence.o)



The Kofax Mobile SDK framework implements OpenCV framework internally.



Unfortunately, you can not use your OpenCV version in your projects that are built with our SDK.


Level of Complexity 



Applies to  

Product Version Build Environment Hardware
Kofax Mobile SDK all      



Add any references to other internal or external articles



Article # 3035466