Windows7环境下使用MinGW-64编译Qt5.15.5时,命令单引号引发编译失败的问题求助
Windows7环境下使用MinGW-64编译Qt5.15.5时,命令单引号引发编译失败的问题求助
我正在Windows 7系统上用MinGW-64编译Qt 5.15.5,一开始只碰到了几个小问题,都顺利解决了。但编译进行到某一阶段突然失败,排查后发现问题出在命令里的单引号上——比如执行下面这个moc相关的编译命令时就报错:
'C:\Qt\5.15.5\build\qtbase\bin\moc.exe' -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQFLOAT16_INCLUDE_FAST -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_NO_DEBUG -DPCRE2_CODE_UNIT_WIDTH=16 -DPCRE2_STATIC --include C:/Qt/5.15.5/build/qtbase/src/corelib/.moc/release/moc_predefs.h -IC:/Qt/5.15.5/Src/qtbase/mkspecs/win32-g++ -IC:/Qt/5.15.5/Src/qtbase/src/corelib -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/zlib/src -IC:/Qt/5.15.5/build/qtbase/src/corelib/global -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/md5 -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/md4 -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/sha3 -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/double-conversion/include -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/harfbuzz/src -IC:/Qt/5.15.5/Src/qtbase/src/3rdparty/tinycbor/src -IC:/Qt/5.15.5/Src/qtbase/src/corelib/.rcc/release -IC:/Qt/5.15.5/Src/qtbase/include -IC:/Qt/5.15.5/Src/qtbase/include/QtCore -IC:/Qt/5.15.5/build/qtbase/include -IC:/Qt/5.15.5/build/qtbase/include/QtCore -IC:/Qt/5.15.5/Src/qtbase/include/QtCore/5.15.5 -IC:/Qt/5.15.5/Src/qtbase/include/QtCore/5.15.5/QtCore -IC:/Qt/5.15.5/build/qtbase/include/QtCore/5.15.5 -IC:/Qt/5.15.5/build/qtbase/include/QtCore/5.15.5/QtCore-IC:/Qt/5.15.5/Src/qtbase/src/corelib/tmp -I. -IC:/mingw64/include/c++/14.2.0 -IC:/mingw64/include/c++/14.2.0/x86_64-w64-mingw32 -IC:/mingw64/include/c++/14.2.0/backward -IC:/mingw64/lib/gcc/x86_64-w64-mingw32/14.2.0/include -IC:/mingw64/include -IC:/mingw64/lib/gcc/x86_64-w64-mingw32/14.2.0/include-fixed -IC:/mingw64/x86_64-w64-mingw32/include --output-json C:/Qt/5.15.5/Src/qtbase/src/corelib/thread/qthreadpool.h -o .moc/release/moc_qthreadpool.cpp mingw32-make[4]: *** [Makefile.Release:9249: .moc/release/moc_qthread.cpp] Error -1073741511 mingw32-make[4]: Leaving directory 'C:/Qt/5.15.5/build/qtbase/src/corelib' mingw32-make[3]: *** [Makefile:45: release] Error 2 mingw32-make[3]: Leaving directory 'C:/Qt/5.15.5/build/qtbase/src/corelib' mingw32-make[2]: *** [Makefile:231: sub-corelib-make_first] Error 2 mingw32-make[2]: Leaving directory 'C:/Qt/5.15.5/build/qtbase/src' mingw32-make[1]: *** [Makefile:54: sub-src-make_first] Error 2 mingw32-make[1]: Leaving directory 'C:/Qt/5.15.5/build/qtbase' mingw32-make: *** [makefile:67: module-qtbase-make_first] Error 2
我做了个测试:切换到编译所在的目录,把命令里'C:\Qt\5.15.5\build\qtbase\bin\moc.exe'的单引号去掉后手动执行,命令就能正常运行;回到编译目录继续执行编译的话,能推进到下一个类似的单引号问题出现的地方。
请问有没有什么彻底解决这个问题的办法,不用每次都手动去修改命令?
备注:内容来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

