Open pchilds opened 5 years ago
@staticfloat, is there a trick to do this with BinaryBuilder?
You could, but that would then cause them to not play well with being loaded within Julia; those libraries are shipped by Julia, and are already loaded when you start Julia, so opening libnlopt.dll
within Julia should auto-load those libraries as well. If you were to statically link them in, you may get symbol conflicts, which may be harmless in most cases, but could cause problems if the version of libgcc_s_seh-1.dll
or libstdc++-6.dll
changes drastically between your binary and the version Julia loads.
What problems are you seeing right now? Is it a problem with dlopen()
'ing libnlopt.dll
, or do you have an external binary that links against libnlopt.dll
that won't run?
Ah, the problem is people who are trying to use the NLoptbuilder binaries from outside of Julia, I think, since I linked to them from the main NLopt documentation
Ah, in that case, we just need to extract the compiler support libraries from BinaryBuilder and make it easy for people to extract those into the same location as libnlopt
. You can get the CSLs from the appropriate tarball here; https://github.com/JuliaPackaging/Yggdrasil/releases/tag/CompilerSupportLibraries-v0.1.4-0
libnlopt.dll has runtime dependencies of "libgcc_s_seh-1.dll", "libstdc++-6.dll", "kernel32.dll", and "msvcrt.dll". Would it be possible to change the build so that the former two are compiled in statically or to distribute them in the .tar.gz archives in order to ease deployment? At the moment the dll will not load as is.