I'll try to summarize what's going on.
1. You have a 64-bit mingw compiler installed. (The mingw compiler is available in several flavours: 32-bit / 64-bit, posix / windows, sjlj / seh. It is important to use the same compiler for all components of an application. However, I assume that requirement is fulfilled in your case.)
2. You compiled wxWidgets yourself with 64-bit mingw. For VC++ builds the 32-bit and 64-bit library variants are placed in different location, namely lib/vc_lib
. The build files coming with wxSQLite3 assume that this convention is used for mingw, too. That is, it is expected that the library path for the 64-bit build will be lib/gcc_x64_lib
. However, in your case the library path is lib/gcc_lib
, because the gcc makefile coming with wxWidgets has no mechanism to specify the architecture AFAICT.
3. Compiling and linking wxSQLite3 in 32-bit mode fails, because the wxWidgets libraries are 64-bit and therefore incompatible.
4. Compiling wxSQLite3 in 64-bit mode fails, because the makefile assumes the library search path as lib/gcc_x64_lib
, and therefore the build specific setup.h file (which is located in the library directory) can't be found.
The easiest approach to overcome the difficulties, would be to rename the library subdirectory in the wxWidgets build from lib/gcc_lib
. Thereafter using a 64-bit configuration of wxSQLite3 should work. As an alternative you could tweak the wxSQLite3 build files by setting wxArchSuffix
to an empty string for the 64-bit configurations. The latter you should only do if you are sure that you never want to use 32-bit builds in parallel.
BTW, wxWidgets provides precompiled library versions at github