我正在尝试编译当前的"稳定"我从Qt git中拉出来的。问题是当它尝试使用uic(UI编译器)时,我的路径变量以某种方式被破坏,并且它无法找到路径上的icu库,但是如果我将库放在与uic相同的目录中它有效,但这不是一个真正的解决方案。
我的路径变量:
%CommonProgramFiles%\Microsoft Shared\Windows Live;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;%systemroot%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;%systemroot%\System32\WindowsPowerShell\v1.0\;I:\miktex\miktex\bin;E:\Program Files\doxygen\bin;E:\Python27;E:\icu\lib;E:\strawberry\c\bin;E:\strawberry\perl\site\bin;E:\strawberry\perl\bin;E:\Program Files (x86)\Git\bin;
mingw32-make的相关输出是
mingw32-make[3]: Entering directory 'e:/qt5/qtbase/src/widgets'
mingw32-make -f Makefile.Debug all
mingw32-make[4]: Entering directory 'e:/qt5/qtbase/src/widgets'
PATH=e:/qt5/qtbase/lib${PATH:+:$PATH} e:/qt5/qtbase/bin/uic.exe dialogs/qfiledialog.ui -o .uic/ui_qfiledialog.h
Makefile.Debug:2443: recipe for target '.uic/ui_qfiledialog.h' failed
mingw32-make[4]: Leaving directory 'e:/qt5/qtbase/src/widgets'
Makefile:38: recipe for target 'debug-all' failed
mingw32-make[3]: Leaving directory 'e:/qt5/qtbase/src/widgets'
Makefile:437: recipe for target 'sub-widgets-make_first' failed
mingw32-make[2]: Leaving directory 'e:/qt5/qtbase/src'
Makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: Leaving directory 'e:/qt5/qtbase'
Makefile:64: recipe for target 'module-qtbase-make_first' failed
关于PATH=e:/qt5/qtbase/lib${PATH:+:$PATH}
的部分看起来非常可疑,遗憾的是我对makefile和这种特殊的语法知之甚少。
答案 0 :(得分:1)
我基本上遇到了同样的问题 - uic.exe的调用会无声地失败,并且构建配方会失败。原来我的路径中的空间让make变得混乱。转到系统控制面板以在系统路径的开头和结尾添加双引号(如果它们不存在)似乎可以解决问题。我的用户路径是空的(只是一对引号),但如果还没有,那么可能需要在它周围添加引号。
之前我还通过转到系统控制面板获取默认路径,使用空格删除条目,然后在PowerShell中运行以下内容来解决问题:
PS C:\Qt\build\5.4.1> $env:Path="C:\Perl64\site\bin;C:\Perl64\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\mingw-w64\i686-4.9.2-posix-dwarf-rt_v4-rev2\mingw32\bin"
PS C:\Qt\build\5.4.1> mingw32-make -j
然后构建正常进行。顺便说一句,第一行只设置当前PowerShell会话的路径,不会使用注册表中设置的路径。
答案 1 :(得分:-2)
我根本不是这方面的专家/权威,但我觉得这是因为你在64位Windows 7上安装了32位MINGW。
另一个问题 - 我在路径中看不到e:/ qt5 / qtbase /。
如前所述,我可能非常错误。