
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.
|
Cleaning the system librariesMinGW 64 seems to generate absolutely crazy .la files, and this may cause many problems.The cause has been identified in few system libraries defining crazy paths in their .la files; and such odd definitions will then propagate polluting any further .la file created by MinGW 64. So you have to manually apply the following patches to avoid any possible further issue:
|
| 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' |
| 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; |
| < GG = g++ |
| < CC = gcc |
| --- |
| > GG = x86_64-w64-mingw32-g++ |
| > CC = x86_64-w64-mingw32-gcc |
|
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 sys png sys regex no tiff sys zlib sys 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: |
| > CXX = x86_64-w64-mingw32-g++ |
| < GG = g++ |
| < CC = gcc |
| --- |
| > GG = x86_64-w64-mingw32-g++ |
| > CC = x86_64-w64-mingw32-gcc |
| replace any occurrence of: info_ptr->height as: getHeight(info_ptr) |
| replace any occurrence of: info_ptr->width as: getWidth(info_ptr) |
| replace any occurrence of: info_ptr->bit_depth as: getBitDepth(info_ptr) |
| replace any occurrence of: info_ptr->color_type as: getColorType(info_ptr) |
| > CXX = x86_64-w64-mingw32-g++ |
| 62c62 |
| < CC= gcc |
| --- |
| > CC= x86_64-w64-mingw32-gcc |
| 69,71c69,71 |
| < 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 > NM= x86_64-w64-mingw32-nm |
| 75c75 |
| < MAKEDEPPROG= gcc |
| --- |
| > MAKEDEPPROG= x86_64-w64-mingw32-gcc |