32-bit and 64-bit dlls

asked 2015-08-10 09:59:00 -0500

mozzis gravatar image

updated 2015-08-24 18:31:02 -0500

We provide a set of libraries to develop specialized applications for optics. I am using OpenCV for some image processing functions.

The way OpenCV is built, dll names are the same for both 32-bit and 64-bit versions. This makes is necessary to either replicate the dlls to every application folder (making the use of dlls pointless) or switching the system PATH in to select the right "bitness" of dlls for each application. It would be much better if the 64-bit versions had "64" appended to the name (and for consistency, "32" in the name of the 32-bit versions.)

I have had a go at rebuilding the dlls from source, but figuring out how to rename the outputs seems hopeless. All of the dependencies would have to change as well, and though I have encountered CMake-based builds in other projects, this one seems much more complicated than I would have expected. Can someone suggest how to accomplish what I need to do here?

edit retag flag offensive close merge delete

Comments

1

hmm, static linking might be more work (you have to care about zlib and whatnot), but it essentially avoids your problem.

berak gravatar imageberak ( 2015-08-10 10:03:56 -0500 )edit

Thanks, I thought of that. However, our product consists of multiple .Net dlls. Some are in C#. There is really no way to use static native .libs in this situation. In addition, it would greatly inflate both the size of the dlls, and the memory footprint of the runtime image.

mozzis gravatar imagemozzis ( 2016-01-15 19:21:28 -0500 )edit