Open FoulDev opened 1 month ago
Problem identified: libvips was linked with libc++, whereas we're linking with libstdc++, resulting in an API match and ABI mismatch.
Example:
// _ZNK4vips6VImage14bandjoin_constE St 6vectorId S aIdEE PNS_7VOptionE
// _ZNK4vips6VImage14bandjoin_constENSt3__16vectorIdNS1_9allocatorIdEEEEPNS_7VOptionE
vips::VImage::bandjoin_const(std:: vector<double, std:: allocator<double> >, vips::VOption*) const;
vips::VImage::bandjoin_const(std::__1::vector<double, std::__1::allocator<double> >, vips::VOption*) const;
Possible solutions:
A docker container is needed to reliably build Spraymaker for Windows on x86_64.
I've been using the following container as a starting point, but haven't had success in getting Spraymaker to link against libvips.
Using the prebuilt binary from https://github.com/libvips/build-win64-mxe/releases/tag/v8.15.3
Attempting to compile via
Results in
Manually passing the link library directory results in
Which is one of the tamer linker errors I've gotten attempting this.