mingw-w64 g ++ неожиданно завершает работу во время компиляции wxWidgets - PullRequest
0 голосов
/ 23 ноября 2018

Я использовал cmake для генерации make-файлов MinGW для компиляции wxWidgets.Произошла ошибка в процессе make (с VERBOSE = 1):

[ 12%] Building CXX object libs/base/CMakeFiles/base.dir/__/__/__/src/common/appbase.cpp.obj
cd /d C:\Users\frank\Documents\Codes\wxWidgets\cmakebuild\libs\base && C:\PROGRA~1\MinGW\bin\G__~1.EXE  -DDLL_EXPORTS -DUNICODE -DWXBUILDING -DWXDLLNAME=wxbase311u_gcc_custom -DWXMAKINGDLL_BASE -DWX_PRECOMP -D_LIB -D_UNICODE -D__WXMSW__ -Dbase_EXPORTS -DwxUSE_BASE=1 -DwxUSE_GUI=0 @CMakeFiles/base.dir/includes_CXX.rsp   -Winvalid-pch -include "C:/.../cmakebuild/libs/base/cotire/base_CXX_prefix.hxx"  -o CMakeFiles\base.dir\__\__\__\src\common\appbase.cpp.obj -c C:\Users\frank\Documents\Codes\wxWidgets\src\common\appbase.cpp

make[2]: *** [libs\base\CMakeFiles\base.dir\build.make:93: libs/base/CMakeFiles/base.dir/__/__/__/src/common/appbase.cpp.obj] Error 1
make[2]: Leaving directory 'C:/.../cmakebuild'
make[1]: *** [CMakeFiles\Makefile2:469: libs/base/CMakeFiles/base.dir/all] Error 2
make[1]: Leaving directory 'C:/.../cmakebuild'
make: *** [Makefile:129: all] Error 2

(я заменил исходный путь wxWidgets на ...)

Я перезапустилкоманда:

C:\PROGRA~1\MinGW\bin\G__~1.EXE  -DDLL_EXPORTS -DUNICODE -DWXBUILDING -DWXDLLNAME=wxbase311u_gcc_custom -DWXMAKINGDLL_BASE -DWX_PRECOMP -D_LIB -D_UNICODE -D__WXMSW__ -Dbase_EXPORTS -DwxUSE_BASE=1 -DwxUSE_GUI=0 @CMakeFiles/base.dir/includes_CXX.rsp   -Winvalid-pch -include "C:/.../cmakebuild/libs/base/cotire/base_CXX_prefix.hxx"  -o CMakeFiles\base.dir\__\__\__\src\common\appbase.cpp.obj -c C:\...\src\common\appbase.cpp

Но я не получил вывод.Я добавил -v после команды, и вот вывод:

Using built-in specs.
COLLECT_GCC=C:\PROGRA~1\MinGW\bin\G__~1.EXE
Target: x86_64-w64-mingw32
Configured with: ../src/configure --enable-languages=c,c++ --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-multilib --prefix=/c/temp/gcc/dest --with-sysroot=/c/temp/gcc/dest --disable-libstdcxx-pch --disable-libstdcxx-verbose --disable-nls --disable-shared --disable-win32-registry --with-tune=haswell --enable-threads=posix --enable-libgomp
Thread model: posix
gcc version 7.3.0 (GCC)
COLLECT_GCC_OPTIONS='-D' 'DLL_EXPORTS' '-D' 'UNICODE' '-D' 'WXBUILDING' '-D' 'WXDLLNAME=wxbase311u_gcc_custom' '-D' 'WXMAKINGDLL_BASE' '-D' 'WX_PRECOMP' '-D' '_LIB' '-D' '_UNICODE' '-D' '__WXMSW__' '-D' 'base_EXPORTS' '-D' 'wxUSE_BASE=1' '-D' 'wxUSE_GUI=0' '-I' 'C:/.../cmakebuild/lib/gcc_dll/mswu' '-I' 'C:/.../include' '-I' 'C:/.../src/zlib' '-I' 'C:/.../src/regex' '-Winvalid-pch' '-include' 'C:/.../cmakebuild/libs/base/cotire/base_CXX_prefix.hxx' '-o' 'CMakeFiles\base.dir\__\__\__\src\common\appbase.cpp.obj' '-c' '-v' '-mtune=haswell' '-march=x86-64'
 c:/progra~1/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/7.3.0/cc1plus.exe -quiet -v -I C:/.../cmakebuild/lib/gcc_dll/mswu -I C:/.../include -I C:/.../src/zlib -I C:/.../src/regex -iprefix c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/ -D_REENTRANT -D DLL_EXPORTS -D UNICODE -D WXBUILDING -D WXDLLNAME=wxbase311u_gcc_custom -D WXMAKINGDLL_BASE -D WX_PRECOMP -D _LIB -D _UNICODE -D __WXMSW__ -D base_EXPORTS -D wxUSE_BASE=1 -D wxUSE_GUI=0 -include C:/.../cmakebuild/libs/base/cotire/base_CXX_prefix.hxx C:\Users\frank\Documents\Codes\wxWidgets\src\common\appbase.cpp -quiet -dumpbase appbase.cpp -mtune=haswell -march=x86-64 -auxbase-strip CMakeFiles\base.dir\__\__\__\src\common\appbase.cpp.obj -Winvalid-pch -version -o C:\Users\frank\AppData\Local\Temp\ccF9vVx8.s
GNU C++14 (GCC) version 7.3.0 (x86_64-w64-mingw32)
        compiled by GNU C version 7.3.0, GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.1.0, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0"
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/x86_64-w64-mingw32"
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/backward"
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/include"
ignoring nonexistent directory "C:/temp/gcc/destC:/temp/gcc/dest/lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include"
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed"
ignoring duplicate directory "c:/progra~1/mingw/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/include"
ignoring nonexistent directory "C:/temp/gcc/dest/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
 C:/.../cmakebuild/lib/gcc_dll/mswu
 C:/.../include
 C:/.../src/zlib
 C:/.../src/regex
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/x86_64-w64-mingw32
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../include/c++/7.3.0/backward
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/include
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed
 c:\progra~1\mingw\bin\../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/include
End of search list.
GNU C++14 (GCC) version 7.3.0 (x86_64-w64-mingw32)
        compiled by GNU C version 7.3.0, GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.1.0, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 00ba9da796d75deb4f2564304e4a9551

Я понятия не имею, о чем свидетельствует вышеприведенный вывод, но если я заменю -E вместо -c в исходной команде, он запуститсяуспешно.И если я скомпилирую предварительно скомпилированный исходный файл, он также успешно запускается и создает нужный объектный файл.

С помощью этого метода я могу создавать объектные файлы и распознавать их, но я не могу сделать это вручную длякаждый объектный файл wxWidgets нуждается.Что это за проблема?Есть ли способ это исправить?

CMake версия 3.13.0-rc3

GNU Make версия 4.2.1

MinGW-W64 G ++ версия 7.3.0

...