Hacker News new | ask | show | jobs
by vedantk 5499 days ago
The install.sh and install_script.sh scripts are Mac-dependent. How would you compile this on Linux? Qmake?

edit: Yep. Clone the git repo, then run qmake, followed by make.

edit #2: Here is a patch I wrote to make the project compile under OpenCV 2.2, and Linux: https://gist.github.com/999061

3 comments

Even after applying your patch I had a little trouble getting everything to link properly on x86_64 Fedora (14). I ended up manually tweaking my make files after running qmake.

Changed the LIBS line (in MLDemos/Makefile, _AlgorithmPlugins/<n>/Makefile.<n>, _IOPlugins/<n>/Makefile.<n>) to:

LIBS = $(SUBLIBS) -L/usr/lib64 -L/usr/local/lib -lhighgui -lcv -lcxcore -lQtGui -lQtCore -lpthread

I suspect there's an easier way, but this at least allowed me to build and everything seems to work properly.

I'm glad it built.

I think the issue we're all having stems from the structural redesign of opencv 2.2. Everything has been split up into smaller headers, and the functionality is similarly separated into different shared libraries. It's a more logical code structure, but it means that we need to have different makefile rules for pre-2.2 and 2.2+ code.

As far as -lhighgui -lcv -lcxcore is concerned, those libraries don't exist on my machine anymore. "highgui" is "/usr/lib/libopencv_highgui.so", and so on. That would explain why my 'fix' didn't work for you.

Here's a patch that lets you compile with opencv2: https://gist.github.com/999061.

edit: I'm still getting a Make error for cvSumPixels (unless I comment that check out);

sampleManager.cpp:(.text+0x1a06): undefined reference to `cvSumPixels'

you might need to add #include <opencv2/legacy/legacy.hpp> #include <opencv2/legacy/compat.hpp> to get those I haven't gotten around to porting it to opencv2.2 so the patch is very welcome!
Good call. I added those headers and linked to their related libraries. It's working perfectly on my Arch install.

Here are my modifications; https://gist.github.com/999427

Yeah, the install(_script).sh are to allow deployment on the Mac (which wants absolute paths to libraries). They will need to be changed to direct to the local libraries in case you need them... (hopefully a new version of MacDeployQt will appear at some point to take care of all that)