Closed lixiang19870818 closed 1 month ago
Hello @lixiang19870818,
The DLLs we ship for the libvips C++ binding on windows are built with g++10. C++ compilers all have different ABIs, so you can't mix compilers in a project. This means you must build your whole project with g++10 if you want to use them.
If you want to use a different compiler, you need to rebuild the libvips C++ binding yourself. It's pretty easy, just copy these files:
https://github.com/libvips/libvips/tree/master/cplusplus
into your project.
You don't need to rebuild the whole of libvips, just this one small C++ DLL.
Hello @jcupitt ,
Are you sure it's caused by ABI incompatibility due to different compiler versions? But currently in my use I only have problems with compilation errors when using the affine function. If it's an ABI incompatibility, then the same problem should occur with other functions, right?
Ah I'm so sorry, I hadn't noticed, you are using mingw, it might be OK.
Do you know which compiler version you have?
You have:
D:\worksapce\CQt\libvipsTest\thirdparty\vips-dev-w64-all-8.15.3\lib\libvips.dll.a
D:\worksapce\CQt\libvipsTest\thirdparty\vips-dev-w64-all-8.15.3\lib\libvips-cpp.dll.a
I would swap these two -- you need libvips-cpp.dll
first.
Hello @jcupitt
Use mingw information as follows:
The libvips.dll.a and libvips-cpp.dll.a libraries have been reordered, but the problem persists.
The latest libvips Windows binaries were build with Clang 18.1.8, so this sounds a libc++ versus libstdc++ ABI issue. You'll probably need to recompile the C++ binding to fix this.
Hi,
I am looking for a way to build a short program (compile and link) that uses the VIPS C++ API library. The program is C++ Console Application build under QtCreator project, mingw, in Windows 10 64bit station.
I downloaded the vips-dev-w64-all-8.15.3.zip - It has a complete set of header/lib/dll folders for VIPS. All these folders were copied to the project directory.
The crux of the problem is that the above error occurs at compile time only when using the affine function in the VImage class;