cv.jit windows error 14001
I’ve built some jitter patches on my Mac and now I’m trying to run them on my Windows machine and I’m running into trouble with the cv.jit library.
I’ve downloaded and installed the latest version of cv.jit (following the directions in the readme) but none of the objects work. When I add one to a patch I get an error in the Max window: Error 14001 loading external cv.jit.faces (for example).
I’m running a fresh install of Windows 7, and Max 5.1.4.
Any help would be great, many thanks!
Yes that thread (and one or two others) just seem to hint that there can be a problem with DLL files, though I haven’t figured out how to resolve it in my case. Since this is a fresh install I don’t think it has the .NET or Visual Studio frameworks referenced in that thread. Another solution I found was to install Java, which I did to no avail.
Thanks for the tip, though. Anyone have any other suggestions? Cheers!
I’d appreciate if Windows users who are seeing errors would give these objects a try and tell me if they work:
(Just copy the .mxe files to the cv.jit-support/externals/ folder to overwrite the old ones.)
Many thanks for posting the new versions.
I still can’t get cv.jit.faces to work, but I’ve tried a few of the other objects and they seem to work fine. I’m not sure if they were working before, though!
These are working fine so far: cv.jit.blobs, cv.jit.binedge, cv.jit.dilate and cv.jit.centroids
But these still return the same "error 14001": cv.jit.centroids, cv.jit.faces, cv.jit.canny, cv.jit.features
I’m afraid I don’t have time right now to check the rest of them for you, I apologize for the partial (and entirely random) sampling, if it is helpful for you I can test the rest of them tomorrow.
I tested all your new cv.jit externals on Windows 7, 32 bits.
I still get the "error 14001" with the following externals :
cv.jit.blobs.recon, cv.jit.canny, cv.jit.faces, cv.jit.features, cv.jit.hsflow, cv.jit.learn, cv.jit.shift, cv.jit.lines, cv.jit.lkflow, cv.jit.opticalflow, cv.jit.resize, cv.jit.snake, cv.jit.track, cv.jit.threshold.
Thank’s for your work.
A useful utility in tracking down dll dependencies is dependency walker.
Also a likely culprit can be the MS C Runtime libraries. Newer versions require them to be installed by the MS installer. This is one of the reasons we provide maxcrt.dll.
Yes, I’ve been using Dependency Walker.
There appears to have been two problems, related to OpenCV, which is why only some externals have problems. One of the external dependencies that might have been causing problems is the OpenMP dll. I thought I had turned OpenMP off when compiling the static OpenCV libs, but there was still a #define that was causing it to be linked.
The other, more problematic culprit was msvcr90.dll. Maxcrt and libcmt/libcpmt were causing multiple definition conflicts, and so I instructed the linker to ignore them. However, a few functions (std::string methods) were left without definitions, and this is what ended up causing the dependency to msvcr90.dll. Since there was no error or warning and the externals ran fine on the machines I tested them on, I assumed everything was ok.
The solution is to specify /nodefaultlibs and manually insert libcpmt.lib and kernel32.lib in the additional dependencies. The order is important: libcmt/libcpmt
come after maxcrt.lib, or else conflicts will result.
I uploaded another version that I think should solve the problems:
Let me know if this solves the issues.
Hello Jean-Marc, sorry for the delay getting back to you.
I’m very happy to say that the latest version works perfectly! I don’t pretend to understand what the problem was, but all I know is that now all the cv.jit objects work on my windows machine. That’s brilliant, thanks so much for all your hard work.
Thanks for taking the time to try things out. Don’t worry if my last post was a bit over your head! I just posted the info in case another developer was in the same situation.
I’ll wait until tomorrow to make the fix official, just in case some people are still having troubles and because I really need to get some sleep!
Glad you all were able to figure these dependencies out! Sorry for the CRT nuisance, Jean-Marc.