- Home /
Plugins on OSX (OpenCV and EmguCV)
Hey!
I'm trying to get OpenCV and EmguCV (.Net OpenCV wrapper) working on OSX. It's already working with DLLs on Windows.
However, on OSX Unity is unable to locate the proper OpenCV binaries it seems. I've dropped .so files into the Plugins directory, but this obviously doesn't work. It appears one is supposed to use .bundle files to add OSX plugins to Unity. How do these files related to .so files that commonly come with pre-built Unix libs? I encountered an OSX .framework package for OpenCV, and dropped it into the Plugins directory aswell, but it didn't seem to stick. :)
Can you build a .bundle file from .so files? What is the proper workflow for this kind of thing? Also, how are .so files related to .dylib files? Should I look for .dylib files on OSX, or do .so files work fine?
To be clear.. EmguCV is a pure .NET wrapper around the C library OpenCV, which can be compiled towards Linux and OSX.
Answer by jonas-echterhoff · Jul 27, 2010 at 09:05 AM
If you have .so files, I think it is very likely that those are not built for Mac OS X. .so (shared object) is a commonly used extension on linux for dynamic libraries - on the mac, those typically have the .dylib extension. A bundle is basically a packaged dylib, but it has some different linking options, so you cannot make a bundle out of a dylib without rebuilding. However, AFAIK, a .framework is just a bundle plus some header files, so likely, just renaming your .framework to .bundle should do the trick. If not, you may have to set up a new build target in XCode for your project to output a bundle.
Ok, thank you. Will try rena$$anonymous$$g to .bundle.
The problem with this was that the framework I had appeared to be a single binary built from the sources, statically linked. The .Net wrapper does DlImport for specific parts of the OpenCV libraries.
Answer by RustemKamun · Jan 31, 2011 at 09:01 AM
Hey guys! Hi. Please help me! I use unity pro right now, and I need to integrate OpenCV to Unity. I ' ve done it through [DllImport] importing EmguCv(DotNet wrapper) , but it is very uncomfortable to call function as: [DllImport('cv')] static extern void Laplace(args[]) Is there exist any other way ?