
PostInstallation tasksStep #1: carefully check the C:\msys64\etx\fstab file; it must contain the following row: (this will automatically mount C:\MinGW64 as /mingw)C:/MinGW64 /mingw Step #2: a dangerous issue exists: the MinGW 64 own MSYS is someway broken (as I painfully discoverd by trial and error ...): the C:\msys64\bin\find.exe executable is badly missing. Unhappily enough, Windows has its own FIND.EXE (and it's a completely different thing from the Linux find): this may cause several builds to misteriously fail ... but now you are well aware of this dangerous pitfall. You simply have to manually pick find.exe from the standard MinGW 32 / MSYS installation, then copying this executable file into C:\msys64\bin. Step #3: the cross-compiler tool-chain seems to be a little bit confused about strip real name: this simple trick seems to definitively resolve any related issue. cp /mingw/bin/x86_64-w64-mingw32-strip.exe /mingw/bin/strip.exe |
Preparing to use PKG-CONFIG:You simply have to follow the same identical procedure already explained for standard MinGW 32 + MSYS |
Learming to identify 32 bit and 64 bit exacutables | |
| 32 bit binaries |
file iconv.exe PE32 executable for MS Windows (console) Intel 80386 32-bit file libiconv-2.dll PE32 executable for MS Windows (DLL) (console) Intel 80386 32-bit |
| 64 bit binaries |
file iconv.exe PE32+ executable for MS Windows (console) Mono/.Net assembly file libiconv-2.dll PE32+ executable for MS Windows (DLL) (console) Mono/.Net assembly |
Setting up Windows own (SYSTEM) librariesSome apps (and libraries) require to be actually linked against MS Windows system libraries. And this is a really puzzling task using MinGW 64.Very shortly explained: the standard GCC tool-chain has the ability to link both .DLL dynamic libraries and .a static libraries. When Windows own system libraries are required, this isn't at all an issue for MinGW 32:
How to circumvent this dangerous pitfallOnce we have identified the reasons causing the above link failure, caring any nursing isn't too much difficult.
|
| 38c38 |
| < PREFIX = |
| --- |
| > PREFIX = x86_64-w64-mingw32- |
| pj_mutex.c:167: error: redefinition of 'pj_acquire_lock' |
| pj_mutex.c:65: error: previous definition of 'pj_acquire_lock' was here |
| pj_mutex.c:181: error: redefinition of 'pj_release_lock' |
| pj_mutex.c:75: error: previous definition of 'pj_release_lock' was here |
| pj_mutex.c:192: error: redefinition of 'pj_cleanup_lock' |
| pj_mutex.c:82: error: previous definition of 'pj_cleanup_lock' was here |
| pj_mutex.c:206: error: redefinition of 'pj_init_lock' |
| pj_mutex.c:91: error: previous definition of 'pj_init_lock' was here |
| 33c33 |
| < #ifndef _WIN32 |
| --- |
| > #if defined (_WIN32) && !defined(__MINGW32__) |
| 40c40 |
| < #ifndef _WIN32 |
| --- |
| > #if defined (_WIN32) && !defined(__MINGW32__) |
| 10c10 |
| < library_names='' |
| --- |
| > library_names='libgeotiff.a' |
| near line 62: ------------ |
| < #ifdef HAVE_INT64_T_64 < typedef int64_t int64; < #else < # ifdef HAVE_LONG_LONG_INT_64 < typedef long long int int64; < # else < typedef long int int64; < # ifndef HAVE_LONG_INT_64 < # define INT64_IS_REALLY32 1 < # warning "Could not find 64bit integer definition!" < # endif < # endif < #endif |
| --- |
| > /* > #ifdef HAVE_INT64_T_64 > typedef int64_t int64; > #else > # ifdef HAVE_LONG_LONG_INT_64 > typedef long long int int64; > # else > typedef long int int64; > # ifndef HAVE_LONG_INT_64 > # define INT64_IS_REALLY32 1 > # warning "Could not find 64bit integer definition!" > # endif > # endif > #endif > */ > typedef long long int int64; |
| 165c165: ------------ |
| < int __cdecl execv(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| --- |
| > int __cdecl execv(const char *_Filename,const char * _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005; |
| < CC = g++ |
| --- |
| > CC = x86_64-w64-mingw32-g++' |
|
Configured wxWidgets 2.8.12 for `x86_64-w64-mingw32' Which GUI toolkit should wxWidgets use? msw Should wxWidgets be compiled into single library? yes Should wxWidgets be compiled in debug mode? no Should wxWidgets be linked as a shared library? no Should wxWidgets be compiled in Unicode mode? yes What level of wxWidgets compatibility should be enabled? wxWidgets 2.4 no wxWidgets 2.6 yes Which libraries should wxWidgets use? jpeg no png no regex no tiff no zlib no odbc no expat no libmspack no sdl no |
| near line 149: ------------ |
| < }; < #include <assert.h> < < /** < * _cairo_error: |
| --- |
| > }; > #include <assert.h> > > #ifdef __MINGW32__ > #define ffs __builtin_ffs > #endif > > /** > * _cairo_error: |
| 62c62 |
| < CC= gcc |
| --- |
| > CC= x86_64-w64-mingw32-gcc |
| 62,63c62,63 |
| < AR= ar $(ARFLAGS) r < RANLIB= /c/MinGW/bin/ranlib.exe < NM= nm |
| --- |
| > AR= x86_64-w64-mingw32-ar $(ARFLAGS) r > RANLIB= x86_64-w64-mingw32-ranlib.exe > x86_64-w64-mingw32-nm |
| 75c75 |
| < MAKEDEPPROG= gcc |
| --- |
| > MAKEDEPPROG= x86_64-w64-mingw32-gcc |
| near line 465: ------------ |
| < static int ftruncate64(int fd, curl_off_t where) < { < if(_lseeki64(fd, where, SEEK_SET) < 0) < return -1; < < if(!SetEndOfFile((HANDLE)_get_osfhandle(fd))) < return -1; < < return 0; < } < #define ftruncate(fd,where) ftruncate64(fd,where) |
| --- |
| > /* > static int ftruncate64(int fd, curl_off_t where) > { > if(_lseeki64(fd, where, SEEK_SET) < 0) > return -1; > > if(!SetEndOfFile((HANDLE)_get_osfhandle(fd))) > return -1; > > return 0; > } > #define ftruncate(fd,where) ftruncate64(fd,where) > */ |